[dev] Spring boot + Swagger 로 Rest API 개발하기

heeju.song·2022년 10월 3일
0

📍Spring Boot ?

Spring Boot 는 Java기반의 플랫폼을 개발하기 위한 프레임워크인 spring 기반의 프로젝트를 was등의 기타 환경 설정 없이 만들 수 있도록 지원합니다. 라이브러리를 버전까지 관리해주고, 설정도 자동화할 수 있으며 내장 tomcat을 사용할 수 있다는 특징이 있습니다. 덕분에 war가 아닌 jar파일로 패키징하여 어플리케이션을 구동할 수 있습니다.


📍Swagger ?

Swagger 는 개발된 Rest API를 자동으로 문서화해주는 프로그램입니다. 개발자가 별도의 작업을 하지않아도 되고, 특히 spring boot기반의 시스템에는 의존성만 주입해주면 됩니다. 외부에서 접속하면 안되는 경우에는 사용에 주의가 필요합니다.


원래 그냥 이클립스를 사용하려고 했지만, mac m1 환경에서 프로젝트 환경인 jdk1.8에 eclipse 가 가능한 버전 조합을...찾기가 너무 어려웠답니다🥲
한참 삽질하다가 그냥 jdk11+STS로 설치해줬어요.

1. pom.xml Dependency 주입

<dependency>
	<groupId>io.springfox</groupId>
	<artifactId>springfox-swagger2</artifactId>
	<version>3.0.0</version>
</dependency>
<dependency>
	<groupId>io.springfox</groupId>
	<artifactId>springfox-swagger-ui</artifactId>
	<version>3.0.0</version>
</dependency>

2. 설정파일 생성

  • SwaggerConfig.java 파일 생성해서 Bean주입해주기
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

@Configuration
public class SwaggerConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.OAS_30)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }
}

3. API 개발

  • @RequestMapping, @GetMapping등의 어노테이션을 활용하여 REST API 개발하기
@RestController
@RequestMapping(value = "/api/services", produces = MediaType.APPLICATION_JSON_VALUE)
public class ServiceController {
  @GetMapping(value = "/{id}")
      public Service getService(
      	@PathVariable Long id) {
          return service.getSerivce(id);
      }
 }

4. Swagger UI 접속

  • {경로}/swagger-ui/ 로 접속 시 아래와 같이 API문서 화면이 조회됩니다😊
profile
Stay Young 🧚🏻‍♀️

0개의 댓글