Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。Java EEはJakarta EEに名前が変わりましたが、当面ブログ名はこのままにします。

SpringFoxで生成したOpen APIのjsonをAzureのAPI Managementに食わせてみる

AzureのAPI Managementを触ってみたいと思ってメニューをみたところ、OpenAPIのspecificationファイルを食わせると簡単に設定ができそうな感じでした。
f:id:kikutaro777:20190304223238p:plain

自分で定義を書くのも手間だなぁと、ふと昔どこかで聞いたSprintFoxの存在を思い出しました。Spring Bootで書いたAPIからspecificationを作ってくれるライブラリです。まずは雑なサンプルを試してみようと、GETメソッドhelloだけ置いたコードを用意しました。

@RestController
@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

	@GetMapping(value="/hello")
	public String hello() {
		return "hello";
	}	
}

あとはSpringFoxの依存性を定義して、Configurationのファイルを追加しただけです。
github.com

これをHerokuへdeployして、https://[herokuのアプリ名].herokuapp.com/swagger-ui.html にアクセスするとSwaggerのAPIリファレンスが表示され、helloのGETメソッドが確認できます。
f:id:kikutaro777:20190304224226p:plain

Base URLの下に表示されている https://[herokuのアプリ名].herokuapp.com/v2/api-docs にアクセスするとOpen APIのspecification(といっていいのかな?)がjson形式で表示されます。
f:id:kikutaro777:20190304224539p:plain

このファイルをダウンロードしておきます。(api-docs.json)

続いてAzureのAPI Managementを作成します。
f:id:kikutaro777:20190304224649p:plain

プランは「消費」を選びました。(日本語だと何か違和感ありますが、「CONSUMPTION」プランです)
f:id:kikutaro777:20190304224802p:plain

「API」メニューから「Open API」を選択します。
f:id:kikutaro777:20190304224938p:plain

「select a file」で先ほどダウンロードしたapi-docs.jsonのファイルを選択します。
f:id:kikutaro777:20190304225211p:plain

すると次のような画面が表示されます。今回はGETメソッド hello しか定義していないためerrorが多いですが、ちゃんとGETメソッドが確認できます。
f:id:kikutaro777:20190304225451p:plain

f:id:kikutaro777:20190304225618p:plain

SwaggerのTry it outみたいなtestもコンソールからできました。
f:id:kikutaro777:20190304225746p:plain

認証の処理を差し込んだり、色々できそうです。とりあえず簡単な下地ができたので触っていきたいと思います。
f:id:kikutaro777:20190304225854p:plain

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村