swagger-codegen header Java REST 客户端的参数

swagger-codegen header parameter for Java REST Client

我正在使用 swagger-codegen 为我的一个 REST API 生成 Java REST 客户端。 REST APIs 采用可选的 header 参数。客户端中生成的方法有一个附加参数,该参数采用 header。我希望在方法签名中没有 header 参数的情况下生成这些方法。 我已阅读文档,但找不到任何参考资料。

例如,对于带有选项 X-CUSTOM-HEADER 参数的 GET all API,swagger-codegen 生成如下方法:

public List<SomeType> findAllUsingGET1(String optionalHeader)

如我所愿:

public List<SomeType> findAllUsingGET1()

寻找解决方法的指示,而不是自定义 client-code 代。

编辑 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"
      }
    }
  }

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

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

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