본문 바로가기
public void static main()/Etc

[Swagger] 스웩! 췤!

by 햄리뮤 2022. 1. 29.
반응형

swagger를 도입해서 프론트분과 협업하여 프로젝트를 하려고 공부하다가

블로그로 정리!

 

 

 

https://www.scottbrady91.com/identity-server/aspnet-core-swagger-ui-authorization-using-identityserver4

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

 

Swagger로 API 문서 자동화를 해보자

Swagger라는 툴을 사용해서 API를 문서화 해보자.

velog.io

 

 

 

** 그냥 하루하루 개인 공부한 것을 끄적 거리는 공간입니다.

이곳 저곳에서 구글링한 것과 강의 들은

내용이 정리가 되었습니다.

그림들은 그림밑에 출처표시를 해놓았습니다.

문제가 될시 말씀해주시면 해당 부분은 삭제 하도록하겠습니다. **

반응형

'public void static main() > Etc' 카테고리의 다른 글

[OS] 멀티 프로그램, 프로세싱  (0) 2022.02.01
[OS] 메모리 영역  (0) 2022.02.01
[Redis] Redis란?  (0) 2021.11.18
[npm] npm이란  (0) 2021.05.05
[Gradle] Gradle은 무엇일까나  (0) 2021.05.05

댓글