SAP
2022-12-12
SAP BTP 開発環境を Lima と WSL2 で作ってみる
この記事は SAP Advent Calendar 2022 の 12 月 14 日分の記事として執筆しています。 仕事用の Mac(M1) の他、普段使っている Windows11 それぞれの環境で 同じ BTP 開発体験を得たいなーと思ったため、Lima と WSL2 を使って環境を作ってみます。 なお、BTP 開発環境は btp-setup-automator を使用してラクします。 また、 Lima や WSL2 もほぼ初期設定のままで進めてみますので、細かな設定等を施したい場合は個々のより詳細な記事や公式資料をご確認ください。 Lima と WSL2 のセットアップ Lima 公式に従い、brew でインストールします。 brew install lima VM インスタンスの生成 Lima の VM インスタンスを作るにはいろいろな方法があるのですが、とりあえず動かすならテンプレートを使用するのが一番簡単です。 テンプレートの一覧 limactl start --list-templates 出力結果 almalinux-8 almalinux-9 … 中略 docker … 中略 ubuntu vmnet 今回は Docker を使いたいので、 docker テンプレート(中身は Ubuntu )を指定します。 limactl start --name=default template://docker また、 btp cli も cf cli も aarch64 には対応していないよう1なので、アーキテクチャを “x86_64” に指定します。 (arch: "x86_64" を yaml に事前設定、または構築時に “Open an editor to review or modify the current configuration” を選択して記載すれば良いです) なお、特にメモリサイズ等を指定しない場合のデフォルト定義は以下となるようです。
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 継承クラスを作成する こちらも公式そのままで。