Spring-Boot の REST API の仕様書を Springfox 3 から Swagger で生成する (Maven)


環境

  • Java 11
  • mvn

準備

ひながた

Spring Initializaer からWEBアプリを落としてくる

APIの口を書く

DemoApplication に直接書いてもいいけどちゃんと独立したクラスにしましょう。

MyController.java
package com.example.demo;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class MyController {
  @GetMapping("/hoge")
  public String hoge(){
    return "hoge";
  }
}

Springfox の追加

https://github.com/springfox/springfox
にあるように、以下の依存関係をMavenに追加する。「dependency」で探せばそれっぽいところがみつかるはず。

pom.xml
        <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-boot-starter</artifactId>
                <version>3.0.0</version>
        </dependency>

起動してみる

なんとこれだけでうごくのである。 コマンドラインとか、Eclipse とか使ってる人は右クリックとか、とにかく mvn spring-boot:run を実行すると、(何かでポートが使われてなければ)8080番でサーバが起動する。

http://localhost:8080/hoge でAPIの応答が確認できる。

http://localhost:8080/swagger-ui/ に行けば以下のような画面が見れる筈。

ちゃんとクラス名まで拾ってくれる。尚API個別の説明とかは Springfox2 のアノテーションが使えるみたい。