Проект Джерси Swagger-UI не отправляет @HeaderParam, пока отправляется @PathParam - PullRequest
0 голосов
/ 16 января 2019

Java-проект Джерси с использованием следующего ядра Swagger:

<dependency>
    <groupId>io.swagger.core.v3</groupId>
    <artifactId>swagger-jaxrs2</artifactId>
    <version>2.0.2</version>
</dependency>

ссылка на документ идет на "openapi.json". Swagger-UI dist ver 3.20.5 загружается с здесь . Java-код выглядит так:

@Path("/auth")
public class TestConttroller {
    @GET
    @Path("/{id}")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response testGet(
                @DefaultValue("") @HeaderParam("Authorization") String a,
                @DefaultValue("") @PathParam("id") String id) 
    {
        return Response.ok().build();
    }

При отправке запроса от Почтальона все работает. Но когда из следующего за Swagger-UI, строка заголовка-параметра "a" является пустой строкой, в то время как строка пути-параметра хороша. Часть в openapi.json находится здесь:

  "paths" : {
    "/auth/{id}" : {
      "get" : {
        "operationId" : "testGet",
        "parameters" : [ {
          "name" : "Authorization",
          "in" : "header",
          "schema" : {
            "type" : "string",
            "default" : ""
          }
        }, {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "default" : ""
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { },
              "application/xml" : { }
            }
          }
        }
      }
    }

Проверка с помощью WireShark обнаружила, что заголовок вообще не запрашивается. Должна ли проблема в Swagger-UI? enter image description here

1 Ответ

0 голосов
/ 27 апреля 2019

@ HeaderParam («Авторизация») похоже на ключевое слово HTTP? когда я использовал другое имя, например "Auth", тогда это работает.

...