java如何编写在请求体中接受XML的swagger API
我们正在使用Swagger来编写RESTAPI。我们有一个POST服务,它应该接受请求体中的XML文件。 这是我们的请求定义:
/services/invoke:
post:
tags:
- invoke
summary: A request invocation
operationId: invokeUsingPOST
consumes:
- application/xml
produces:
- application/xml
parameters:
- name: User-Token
in: header
description: The user token
required: false
type: string
- in: body
name: request
description: invoke request XML
required: false
schema:
type: string
responses:
'200':
description: OK
schema:
type: string
'400':
description: Bad Operation
'401':
description: Unauthorized
'404':
description: Forbidden
但是,当我们使用swagger codegen生成Java客户端代码时,生成的方法如下所示:
public String invokeUsingPOST (String userToken, Request request)
请求类生成为:
@ApiModel(description = "")
@javax.annotation.Generated(value = "class io.swagger.codegen.languages.JavaClientCodegen", date = "2015-11-25T18:45:31.524+02:00")
public class Request {
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class Request {\n");
sb.append("}");
return sb.toString();
}
}
如何使用它发送XML?我必须从它派生并重写toString()方法,还是有更好的方法
# 1 楼答案
对我来说,快速的解决方法是将另一个elseif添加到serialize方法中,以检查内容类型是否为“application/xml”
芸香有这两种方法
这对我来说很有效,我希望能有所帮助
# 2 楼答案
有一个错误,大约2小时前解决了。请从Swagger-Codegen中提取最新的,Java API客户端中的参数
request
应该是字符串而不是模型