SAP CAP

2022-03-03

CAP Java の API ドキュメントを OpenAPI(Swagger) で作成する

SAP CAP にて、CDS で API Endpoint を作成できるのは便利な一方、 CDS を書いていない方にとっては読みにくく、仕様として連携が難しい面があったため、 API ドキュメントを生成してみることにしました。 ※ 元記事は Zenn にありますが、こちらにも移しました。 公式ドキュメント https://cap.cloud.sap/docs/advanced/openapi 公式に記載されている通り、Node.js と違って Java の場合は CAP が良しなにやってくれるわけではないので、 自力で Spring Boot に統合してあげる必要があります。 幸い以下のサンプルコードも共有されているため、これを参考にしつつ、ドキュメントを生成してみます。 https://github.com/SAP-samples/cloud-cap-samples-java/commit/67f0ba618fc7da131d1a104f7a23e8b836e14d93 作業内容 1. srv/pom.xml に コンパイルコマンドを追加 公式サンプルの記述では以下のようになっています。 <command>compile srv/cat-service.cds -2 openapi --openapi:url /api/browse > ${project.basedir}/src/main/resources/swagger/openapi.json</command> しかしこの記述だと、特定の CDS( この例では cat-service.cds ) だけを対象としているため、 今回はすべてのドキュメントを出力するように変更します。 また、オプションによって図も出せるようなので、追加してみます。 <変更後> <command>compile srv --service all -o srv/src/main/resources/swagger --to openapi --openapi:diagram</command> 2. Swagger 向けの WebMvcConfigurer 実装クラスを作成する こちらは公式そのままで OK。 SwaggerResourceConfig.java 3. Swagger 向けの WebSecurityConfigurerAdapter 継承クラスを作成する こちらも公式そのままで。