Я предполагаю, что вы используете springdo c -openapi для создания SwaggerUI.
Чтобы использовать это, вы можете использовать следующие зависимости Maven,
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-webmvc-core</artifactId>
<version>1.4.2</version>
</dependency>
Начиная с версии 1.1.25 из springdo c -openapi, HttpServletRequest и HttpServletResponse будут добавлены в список игнорируемых типов.
См. ниже,
https://github.com/springdoc/springdoc-openapi/issues/57
Поэтому, даже если мы добавим HttpServletRequest в качестве параметра внутри метода контроллера, он будет проигнорирован и не будет отображаться в swagger.
Итак, возвращаясь к вашему вопросу, чтобы отобразить модель класса, вы можете опишите другой параметр вместе с HttpServletRequest, как показано ниже,
@Operation(summary = "Returns a token", description = "Returns A token API", tags = "tokenGeneration", responses = {
@ApiResponse(description = "Successful Operation", responseCode = "200", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Timeresponse.class))),
@ApiResponse(description = "not found Operation", responseCode = "404") })
@PatchMapping("/getTokenPatchRequest")
public ResponseEntity getTokenpatch(HttpServletRequest request, @RequestBody AuthReq2 req) {
log.info("The HttpServlet request header contains the information : " + request.getHeader("Authorization"));
Класс модели Auth2, как показано ниже, может описывать ваше примерное значение имени пользователя и паролей et c.
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class AuthReq2 {
@Schema(example = "diannamcallister")
private String userName;
@Schema(example = "test")
private String password;
}
И наконец, страница чванства выглядит так:
When you enter something in the authorization header, as below,
введите описание изображения здесь
Доступ к нему можно получить через запрос сервлета HTTP с помощью приведенного ниже кода:
log.info("The HttpServlet request header contains the information : " + request.getHeader("Authorization"));
Запись журнала в приложении springboot будет выглядеть, как показано ниже,
10:40:01.876 INFO OpenApiController.getTokenpatch:163 - The HttpServlet request header contains the information : stackoverflow