4

我正在使用 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"
      }
    }
  }
4

1 回答 1

5

如果要从 Java API 客户端中的方法签名中删除参数(可选),唯一的方法是从 Swagger/OpenAPI 规范中删除参数。

要添加默认标头,可以使用以下addDefaultHeader方法ApiClienthttps ://github.com/swagger-api/swagger-codegen/blob/master/samples/client/petstore/java/okhttp-gson/src/main/java/ io/swagger/client/ApiClient.java#L528

更新:标题参数,类似于表单,查询参数,是作为方法参数生成的。从开发人员的角度来看,它只是另一个参数(他们不需要知道参数是标题、表单还是查询参数)

于 2017-03-30T09:27:28.230 回答