P3] Ch 09. SwagerによるAPI公開


目次


1.スワーガーとは?
2.Swaggerの設定

1.スワーガーとは?


開発されたREST APIを容易に記録し、管理またはサードパーティのユーザーがAPIを容易に呼び出し、テストできるようにします.springfox-boot-starterをgrade依存項目に追加するのは簡単です.露出しないところで使うときは注意しましょう.

2.Swaggerの設定

Failed to start bean 'documentationPluginsBootstrapper'エラー.依存バージョンに一致しないことを確認します.
springframwork.bootのバージョンを2.4.5に変更し、localhost:8080/swagger-ui/に入ると傲慢さが確認できます.

このページでリクエストと応答の値を表示するのは簡単です.

@Api


コントローラとして使用されるクラスの上に作成し、tagsプロパティに渡される値をコントローラの説明とします.@Api(tags = {"API 정보를 제공하는 Controller"})

@ApiParam


このパラメータの前に作成し、パラメータ名(value)、データ型などのプロパティを設定します.それぞれのパラメータに設定して使用します.
@GetMapping("/plus/{x}")
    public int plus(
                    @ApiParam(value = "x값") 
                    @PathVariable int x,

                    @ApiParam(value = "y값")
                    @RequestParam int y) {
        return x+y;
    }

@ApiImplictParamsと@ApiImplictParam


上記の設定をメソッド単位の配列に設定できます.各パラメータ変数の前に作成するのではなく、メソッド上で簡単に設定できます.
   @ApiImplicitParams(
            {
                    @ApiImplicitParam(name = "x",value="x 값",required = true,dataType = "int"),
                    @ApiImplicitParam(name = "y",value = "y 값",required = true,dataType = "int")
            }) 
    @GetMapping("/plus/{x}")
    public int plus(
                    @PathVariable int x,
                    @RequestParam int y) {
        return x+y;
    }
@ApiImplicitParamの配列を@ApiImplicitParamsのパラメータとして作成し、各@ApiImplicitParamには各パラメータのプロパティ設定が含まれます.

@ApiOperation


メソッドの説明の説明を設定します.@ApiOperation(value = "사용자의 이름과 나이를 echo 하는 메소드") に示すように、value属性はこの方法の説明である.

@ApiResponse


例えば、@ApiResponse(code = 502,message = "사용자의 나이가 10살 이하일때")のように説明を記述すると、「ユーザ年齢が10歳以下の場合」502のコードが低下することを示すことができる.

@ApiModelProperty


要求または応答オブジェクトの変数属性データを説明する説明として、オブジェクトごとに変数説明を作成できます.
    @ApiModelProperty(value = "사용자의 이름",example =  "yoojin",required = true) 
    private String name;

    @ApiModelProperty(value = "사용자의 나이",example = "25",required = true)
    private int age;
前述したように、value(説明)およびexample(例)は、各変数について記述し、必要かどうかなどを記述することができる.