SpringFox Swagger - 모델의 옵션 및 필수 필드
SpringFox 라이브러리를 사용하여 SpringBoot 앱의 rest 문서화를 수행했습니다.모델을 클릭하면 모든 요소가 옵션으로 반환됩니다.필수 요소를 필수로 표시하는 방법이 있습니까?추가해야 할 추가 구성이 있습니까?
예 기본적으로 모든 필드는 선택사항입니다.필드를 필요에 따라 표시하려면 다음 주석을 사용할 수 있습니다.
@ApiModelProperty(required = true)
필요한 필드의 getter 메서드입니다.필드가 "필수"로 표시되지 않습니다.그러나 설명서의 이 필드에 대한 선택적 태그는 제거됩니다.
이게 도움이 되길 바랍니다.
Springfox v2.3.2에서 특히 @NotNull, @Min, @Max 및 @Size에 대한 콩 유효성 검사 주석 지원이 추가되었습니다.
이러한 주석을 모든 API 모델에 배치할 수 있습니다.
이를 사용하려면 springfox-bean-validators 종속성을 추가합니다.
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-bean-validators</artifactId>
</dependency>
응용 프로그램의 구성 클래스에 추가:
@Import({springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration.class})
참조: https://springfox.github.io/springfox/docs/current/ #springfox-support-for-jsr-messages
스웨거 구성에서 유사한 코드를 사용해 보십시오.
@Bean
public Docket api() {
List<ResponseMessage> list = new java.util.ArrayList<>();
list.add(new ResponseMessageBuilder().code(500).message("500 message")
.responseModel(new ModelRef("JSONResult«string»")).build());
list.add(new ResponseMessageBuilder().code(401).message("Unauthorized")
.responseModel(new ModelRef("JSONResult«string»")).build());
return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any()).build().securitySchemes(Collections.singletonList(securitySchema()))
.securityContexts(Collections.singletonList(securityContext())).pathMapping("/")
.directModelSubstitute(LocalDate.class, String.class).genericModelSubstitutes(ResponseEntity.class)
.alternateTypeRules(newRule(
typeResolver.resolve(DeferredResult.class,
typeResolver.resolve(ResponseEntity.class, WildcardType.class)),
typeResolver.resolve(WildcardType.class)))
.useDefaultResponseMessages(false).apiInfo(apiInfo()).globalResponseMessage(RequestMethod.GET, list)
.globalResponseMessage(RequestMethod.POST, list);
}
그리고 컨트롤러 매핑에서 추가@RequestBody @Valid MyRequestClass req
예를 들어 요청 본문에서 객체를 전달하고 매개 변수를 전달하는 경우 다음과 같은 것을 추가합니다.@RequestParam(value = "email", required = true, defaultValue = "") String email
또한 구성 코드에서 제네릭 형식의 클래스를 참조하는 방법을 확인하십시오."JSONResult«string»"
그것은 참조하는 것입니다.JSONResult<String>
저도 같은 문제를 안고 있었지만 @etech 팁을 통해 필요한 필드가 스웨거로 표시된 것을 확인할 수 있었습니다.제가 한 일은 스프링 폭스 스웨거를 업그레이드한 것뿐입니다.버전을 2.9.2(2.4.0에서) 및 guava.version에서 20.0(15에서)으로 추가하고 애플리케이션 구성 클래스에서 가져오기를 수행합니다.감사해요.
언급URL : https://stackoverflow.com/questions/43771283/springfox-swagger-optional-and-mandatory-fields-in-model
'programing' 카테고리의 다른 글
org.postgresql.dll.PSQL 예외: 오류: 값이 너무 깁니다(255). 형식 문자가 다양합니다(255) (0) | 2023.07.22 |
---|---|
PyCharm이 가변 기본 인수에 대해 경고하는 이유는 무엇입니까?어떻게 하면 그들을 피할 수 있을까요? (0) | 2023.07.22 |
스프링 부트 3의 스프링 보안 (0) | 2023.07.22 |
왜 공포증을 사용할 수 없습니까? (0) | 2023.07.22 |
교육을 받은 Keras 모델 로드 및 교육 계속 (0) | 2023.07.22 |