【发布时间】:2017-08-20 01:04:07
【问题描述】:
我正在使用 swagger-codegen 为我的一个 REST API 生成 Java REST 客户端。 REST API 采用可选的标头参数。客户端中生成的方法有一个带有标头的附加参数。我希望在方法签名中没有标头参数的情况下生成方法。 我已阅读文档,但找不到任何参考。
例如,对于带有选项 X-CUSTOM-HEADER 参数的 GET all API,swagger-codegen 会生成如下方法:
public List<SomeType> findAllUsingGET1(String optionalHeader)
我希望它在哪里:
public List<SomeType> findAllUsingGET1()
寻找解决方法的指针,而不是自定义客户端代码生成。
编辑 1:添加 JSON 规范
"get": {
"summary": "findAll",
"operationId": "findAllUsingGET1",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "X-CUSTOM-HEADER",
"in": "header",
"description": "Custom Header",
"required": false,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "string"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
}
}
【问题讨论】:
-
您能否将 json/yaml 中被解析为该 GET 的部分包含在内?
-
@moondaisy - 添加了 API 规范的 JSON sn-p。
-
请详细解释一下为什么您希望在方法签名中没有标头参数的情况下生成方法。如果该参数确实是可选的,那么您可以简单地将其从规范中删除,以便 swagger codegen 不会将其包含在 Java 方法签名中
-
@wing328 - 我希望将标头添加为 REST 调用的标头,而不是将其作为参数传递给方法。所以就像在
ApiClient.addDefaultHeader上设置标题一样。自定义标头实际上不是可选的,它是强制性的。我必须将其更改为可选,这样我就不必在每个方法调用中都传递它。无论如何,如果某些东西是可选的,那并不意味着我们应该从规范中删除它。对吧?
标签: java swagger-codegen