Swagger ApiImplicitParam 有没有办法为参数和 api 定义单独的名称

Is there a way for Swagger ApiImplicitParam to define separate names for parameter and api

我现在从注释生成 swagger 并尝试在我首先移动到模式时在短时间内清理生成,所以我有:

    @ApiImplicitParams({
            @ApiImplicitParam(
                    name = "x-my-header-name", dataType = "string", paramType = "header", allowMultiple = true,
                    allowableValues = "A,B,C,D",
                    value = "Header defined presentation options"
            ),
     ...
    public Response processRequest(@HeaderParam("x-my-header-name") String myHeaderName) {
        return something;
    ...

HeaderParam 用于将 x-my-header-name 映射到 myHeaderName 但是从中生成 swagger 会为相同的 header:

生成两个条目
        - name: x-my-header-name
          in: header
          required: false
          type: string
        - name: x-my-header-name
          in: header
          description: 'Header defined presentation options'
          required: false
          type: array
          items:
            type: string
            enum:
              - A
              - B
              - C
              - D
          collectionFormat: csv

有没有办法让 swagger 隐藏一个或将所有必需的信息组合到一个地方,而不必制作非标准的 header 名称或 Java 参数名称?

您需要使用 @ApiParam 来更改名称,而不是使用 ApiImplicitParam

参考:https://www.baeldung.com/swagger-apiparam-vs-apimodelpropertyApiImplicitParam 用于添加额外的属性。

   Response processRequest(
     @ApiParam("x-my-header-name")  
     @HeaderParam("x-my-header-name") String myHeaderName) {
    //...
   }