我使用swagger-codegen为我的一个REST API生成Java REST客户端。 REST API采用可选的头参数。客户端中生成的方法有一个额外的参数,用于获取标头。我想在方法签名中没有header参数的情况下生成方法。 我已阅读文档,但无法找到任何参考文献。
例如,对于带有选项X-CUSTOM-HEADER参数的GET所有API,swagger-codegen生成如下方法:
public List<SomeType> findAllUsingGET1(String optionalHeader)
我希望它在哪里:
public List<SomeType> findAllUsingGET1()
寻找变通方法的指针,而不是自定义客户端代码生成。
"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"
}
}
}
答案 0 :(得分:4)
如果要从Java API客户端中的方法签名中删除参数(可选),唯一的方法是从Swagger / OpenAPI规范中删除该参数。
要添加默认标头,您可以使用addDefaultHeader
中的ApiClient
方法:https://github.com/swagger-api/swagger-codegen/blob/master/samples/client/petstore/java/okhttp-gson/src/main/java/io/swagger/client/ApiClient.java#L528
更新:类似于表单,查询参数的标头参数作为方法参数生成。从开发人员的角度来看,它只是另一个参数(他们不需要知道参数是标题,表单还是查询参数)