일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- openaddressing
- lombok
- 추상클래스
- 타임존설정
- 크리스탈레포트이미지
- Ajax
- git
- RequestBody
- ResponseBody
- 자료구조
- EC@
- @RunWith
- fcmwebpush
- 타임존
- 서버기본
- JDBC
- 오라클오류
- 서블릿용어
- 게시판댓글
- 크리스탈레포트누끼
- 크리스탈리포트이미지
- IT기본지식
- 이미지누끼
- import안될때
- 롬복
- 크리스탈리포트이미지삽입
- 스토리지기본
- 크리스탈레포트그림
- jdbc연결안됨
- api문서만들기
- Today
- Total
엠마의 개발공부일지
Swagger - 프로젝트 문서화 하기 본문
새하얗게 까먹어버렸기때문에
블로그에 박제해 본다
1. Swagger 라이브러리 추가
implementation 'io.springfox:springfox-boot-starter:3.0.0'
implementation 'io.springfox:springfox-swagger-ui:3.0.0'
2. application.yml에 설정 추가
=> 스프링MVC와 Swagger를 매칭해 주기 위함
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
3. Swagger 설정파일 추가
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build().apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("title")
.description("description")
.version("1.0")
.build();
}
}
4. 서버 실행 후 http://localhost:8080/swagger-ui/index.html 주소에서 swagger페이지 확인가능
Swagger페이지 커스텀하기
1. 단순 Error API없애기
API목록중에 내가 만들지않은 Error API가 있을것이다. 그것을 안보이게 하고싶으면 아래의 내용을 참고한다.
- Swagger 설정파일에서 apis부분을 any()가 아닌 내 프로젝트명으로 바꿔준다(자바 아래의 패키지명)
(error api는 내 프로젝트가아닌 spring단에서 만들어진 api이기때문에, 내 프로젝트에서 만들어진것만 쓰겠다는 의미)
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.emma_dev.ohguohgu"))
.paths(PathSelectors.any())
.build().apiInfo(apiInfo());
}
2. 특정 경로의 API만 가져오고 싶은경우
- path부분에 any()가 아닌 ant()메서드를 사용하여 원하는 경로만 보이게 설정 가능
- 나만 보고싶은 api가 있는경우 설정값을 다르게하여 노출이 안되게 할 수 있다.
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.emma_dev.ohguohgu"))
.paths(PathSelectors.ant("/admin/**"))
.build().apiInfo(apiInfo());
}
3. 각 API에 부가설명 붙이기
각 API 맨 오른쪽에 회색글씨로 API메서드 명이 써있는데, 이 부분을 API에 대한 설명으로 교체할 수 있다
API에 @ApiOperation을 추가하여 부가설명을 붙일 수 있다.
아래와같이 각 API명과, 추가 설명을 붙이고싶다면, @ApiOperation 어노테이션에 notes키워드를 추가해주면 된다
4. 파라미터로 넘어오는 인자에 대한 설명을 붙이고 싶을때
- 입력해줘야하는 인자의 형식이라던가 설명이 필요할때는 해당 파라미터앞에 @ApiParam어노테이션을 추가하여 value를 입력해준다.
'Stack > Spring & Springboot' 카테고리의 다른 글
thymeleaf수정 시, 서버 재시작하지않고 바로 반영하는 방법 (0) | 2022.12.20 |
---|---|
SOLID원칙 (좋은객체지향설계 5원칙) (0) | 2021.01.07 |
ajax로 컨트롤러에서 받을때 (0) | 2021.01.05 |
ajax통신하여 데이터 주고받기 (0) | 2020.12.31 |
스프링으로 메일발송 시 css깨짐문제 (0) | 2020.12.22 |