✅ 디펜던시 설정
// https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter
implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'
✅ 컨트롤러 하나 만들고
@RestController
@RequestMapping("/api")
public class ApiController {
@GetMapping("/hello")
public String hello(){
return "hello swagger";
}
}
✅ 이제 TalendAPI를 사용하여 Test하지 않고 localhost:8080/swagger-ui/로 들어가면됨
✅ @Api Controller 설명 넣기
@Api(tags = "API정보를 제공하는 Controller")
@RestController
@RequestMapping("/api")
public class ApiController {
@GetMapping("/hello")
public String hello(){
return "hello, Swagger";
}
}
👇👇👇👇👇👇👇👇
✅ @Get 방식의 PathParam 사용과 RequestRaram 사용
@GetMapping("/plus/{x}")
public int plus(@PathVariable int x, @RequestParam int y){
return x+y;
}
정말 간편하다.
✅ 추가로 @ApiParam을 사용하면
@ApiParam(value = "X값")
@PathVariable int x,
@ApiParam(value = "y값")
@RequestParam int y){
✅ 몰론 ApiImplicitParms를 이용야여 Param들의 정의를 한번에 할수도 있다.
@ApiImplicitParams({
@ApiImplicitParam(name = "name", value = "사용자 이름", required = true, dataType = "string", paramType = "path"),
@ApiImplicitParam(name = "age", value = "사용자 나이", required = true, dataType = "int", paramType = "query")
})
✅ DTO에도 명시적으로 표현할수 있다.
@AllArgsConstructor
@NoArgsConstructor
@Data
public class UserResponse {
@ApiModelProperty(value = "사용자 이름", example = "steve")
private String name;
@ApiModelProperty(value = "사용자 나이", example = "10")
private int age;
}
✅ 마지막으로 error 부분도 따로 정할수 있다.
@PostMapping("/user")
@ApiResponse(code = 404, message = "not found")
public UserResponse post(@RequestBody UserRequest userRequest){
return new UserResponse(userRequest.getName(), userRequest.getAge());
}