저번에 Spring Swagger 관련하여 정리를 했었는데,
다시 한번 더!
Swagger?
- Rest 기반의 API의 매핑된 URL을 자동으로 문서 및 테스트 환경을 만들어주는 오픈소스이다.
- Swagger을 도입함으로서 클라이언트와 개발자가 파라미터들의 호출에 맞게 호출 및 테스트를 진행 할 수 있다.
SpringBoot에 설치
- pom.xml 추가<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.4.0</version><scope>compile</scope></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.4.0</version><scope>compile</scope></dependency>
cs
- Swagger Config 설정@Configuration@EnableSwagger2public class SwaggerConfig {/*** SwaggerEnableSwagger2 설정*/@Beanpublic Docket newsApi() {ArrayList<ResponseMessage> responseMessageStatus = newArrayList(new ResponseMessageBuilder().code(400).message("Bad Request").responseModel(new ModelRef("Error")).build(),new ResponseMessageBuilder().code(401).message("No permission").responseModel(new ModelRef("Error")).build(),new ResponseMessageBuilder().code(404).message("Not found").responseModel(new ModelRef("Error")).build(),new ResponseMessageBuilder().code(405).message("Method Not Allowed").responseModel(new ModelRef("Error")).build(),new ResponseMessageBuilder().code(500).message("Internal Server Error").responseModel(new ModelRef("Error")).build());return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any()) // 현재 RequestMapping으로 할당된 모든 URL 리스트를 추출.paths(PathSelectors.ant("/api/**")) // 그중 /api/** 인 URL들만 필터링 .build();.build().apiInfo(apiInfo()).globalResponseMessage(RequestMethod.POST, responseMessageStatus).globalResponseMessage(RequestMethod.GET, responseMessageStatus).globalResponseMessage(RequestMethod.PUT, responseMessageStatus).globalResponseMessage(RequestMethod.DELETE, responseMessageStatus);}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("REST API").contact("TEST").version("0.0.1").build();}}
cs - Sample 클래스 생성@Api(tags = "Sample API", description = "샘플 API 가이드")@RestController@RequestMapping("/api/sample")public class SampleCtrl {private static final Logger logger = LoggerFactory.getLogger(SampleCtrl.class);@Autowiredprivate SampleSvc sampleSvc;@ApiOperation(value = "샘플 리스트", notes = "샘플리스트 API", response=ResponseResult.class)@ApiImplicitParams({@ApiImplicitParam(name = "email", value = "이메일", required = true, dataType = "String", paramType = "query"),@ApiImplicitParam(name = "passwd", value = "비밀번호", required = true, dataType = "String", paramType = "query")})@RequestMapping(value = "", method=RequestMethod.GET)public ResponseResult getSample(@Valid @ModelAttribute Sample sample){ResponseResult rr = new ResponseResult();try{} catch (Exception e) {logger.error(e.toString());}return rr;}}
cs - http://localhost:8080/swagger-ui.html 경로로 접속해보면 Sample에 대한 API가 생성되었음을 알 수 있다.
끝.
'STUDY > SPRING' 카테고리의 다른 글
SpringBootSecurity Rest Login 적용 (0) | 2018.08.24 |
---|---|
Executorexception: No constructor found in XXX (0) | 2018.07.25 |
@Valid (0) | 2018.07.23 |
SPRING LOADED 적용 (0) | 2018.07.23 |
SPRINGBOOT CONSOLE SQL 정렬 (0) | 2018.07.19 |