반응형
swagger를 도입해서 프론트분과 협업하여 프로젝트를 하려고 공부하다가
블로그로 정리!
Swagger
Swagger는 Rest API를 설계, 빌드, 문서화 및 사용하는 데 도움이되는 OpenAPI 사양을 중심으로 구축 된 오픈 소스 도구 세트이다!
[사용 이유]
- 테스트 할 수 있는 UI를 제공한다. 문서 화면에서 API를 바로 테스트 가능!
[사용 방법]
build.gradle에 의존성 추가!
compile 'io.springfox:springfox-swagger2:2.9.2'
compile 'io.springfox:springfox-swagger-ui:2.9.2'
SwaggerConfig 작성
@Configuration
@EnableSwagger2
public class SwaggerConfig extends WebMvcConfigurationSupport {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.enable(true)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("제목작성")
.version("버전 작성")
.description("설명작성")
.build();
}
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
SpringBootApplication 설정
@SpringBootApplication
@EnableSwagger2
public class TestApplication {
Swagger문서에서 보고싶은 Controller 설정
@Controller
@Api("Board Controller API")
public class BoardController {
이렇게 하면 끝!
실행
http://localhost:8080/swagger-ui.html
이 url로 실행하면
이런 화면이 뜬다!
swagger-ui.html로 접속하는 이유는, springfox-swagger-ui가 해당 파일을 만들어주기 때문이다.
라고 블로거님이 알려주셨다!
@Api
- 해당 클래스가 Swagger 리소스라는 것을 명시해준다.
- value : 사용자 지정 이름을 붙일 수 있다. tags 사용시 무시된다.
- tags : 사용하여 여러 개의 태그를 정의할 수도 있다.
@ApiOperation
- 한 개의 Operation을 선언한다.
- value : API에 대한 요약을 작성한다. 제대로 표시되려면 120자 이하여야 한다.
- notes : API에 대한 자세한 설명을 작성한다.
@ApiParam
- 파라미터에 대한 정보를 명시한다.
- name : 파라미터 이름을 작성한다.
- value : 파라미터 설명을 작성한다.
- required : 필수 파라미터이면 true, 아니면 false를 작성한다.
주의사항
API 문서 URL을 알고 있다면 아무나 들어와서 테스트를 할 수도 있다. 따라서 사전에 접근권한의 제한 등을 통해 권한이 있는 사용자만 접근할 수 있도록 Spring Security 등의 설정을 해주어야한다!
Swagger 적용 위주로 정리해 보았다! 나중에 나도 또 참고하면 좋을듯!
오늘도 도움을 주신 블로거님 감사합니다!
https://velog.io/@banjjoknim/Swagger
** 그냥 하루하루 개인 공부한 것을 끄적 거리는 공간입니다.
이곳 저곳에서 구글링한 것과 강의 들은
내용이 정리가 되었습니다.
그림들은 그림밑에 출처표시를 해놓았습니다.
문제가 될시 말씀해주시면 해당 부분은 삭제 하도록하겠습니다. **
반응형
'public void static main > Etc' 카테고리의 다른 글
[OS] 멀티 프로그램, 프로세싱 (0) | 2022.02.01 |
---|---|
[OS] 메모리 영역 (0) | 2022.02.01 |
[Redis] Redis란? (0) | 2021.11.18 |
[Design Pattern] Bridge Pattern (0) | 2021.11.16 |
[Design Pattern] Decorator Pattern (0) | 2021.11.16 |
댓글