ホームページ >Java >&#&チュートリアル >SpringBoot Web サービス - 初期構成の一部
この投稿では、Spring Boot アプリケーションで OpenAPI を構成し、ルート URL から Swagger UI への便利なリダイレクトを追加する方法を説明します。この設定により、API ドキュメントが改善され、開発者がアクセスしやすくなります。
まず、OpenAPI ドキュメントをカスタマイズするための構成クラスを作成しましょう。
import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Contact; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.License; import org.springframework.boot.info.GitProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class OpenAPIConfig { @Bean public OpenAPI customOpenAPI(GitProperties gitProperties) { return new OpenAPI() .info(new Info() .title("Book Catalog API") .description("REST API for managing a book catalog. Application version: "+ gitProperties.get("build.version")) .version("1.0.0") .contact(new Contact() .name("Book Catalog Team") .email("support@bookcatalog.com") .url("https://github.com/vlaship/book-catalog")) .license(new License() .name("MIT License") .url("https://opensource.org/licenses/MIT")) ); } }
この構成では、API に関する基本情報を含むカスタム OpenAPI Bean が作成されます。連絡先情報、ライセンス、外部ドキュメントなどの詳細を追加して、これをさらにカスタマイズできます。
GitProperties を使用して詳細を提供できます。
次に、ユーザーをルート URL から Swagger UI にリダイレクトするコントローラーを作成しましょう。
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class OpenApiController { @GetMapping("/") public String index() { return "redirect:swagger-ui.html"; } }
この単純なコントローラーは、ルート URL (「/」) に @GetMapping を使用し、Swagger UI HTML ページにリダイレクトします。
この構成ファイルは、多くの場合 application.yml という名前で、アプリケーションの動作のさまざまな側面を定義する上で重要な役割を果たします。
spring: application: name: book-catalog version: '@project.version@' mvc: problemdetails: enabled: true management: endpoints: web: exposure: include: '*' info: git: mode: full server: port: 8888 servlet: context-path: /${spring.application.name} error: whitelabel: enabled: false
提供された YAML 構成は、Spring Boot アプリケーションのいくつかの主要な領域をカバーします。
name: アプリケーションの名前を定義します。ここでは book-catalog に設定します。
version: アプリケーションのバージョンを指定するために、ビルド プロセス中に設定される可能性があるプレースホルダーを参照します。
problemdetails.enabled: 例外の応答本文で詳細な問題レポートを有効にします。
endpoints.web.exposure.include: '*':** 監視と管理の目的ですべてのアクチュエータ エンドポイントを公開します。
info.git.mode: full: /info エンドポイントで詳細な Git 情報を提供します。
port: サーバーが受信リクエストをリッスンするポートを設定します (デフォルトは 8080、ここでは 8888 に設定します)。
servlet.context-path: アプリケーションのコンテキスト パスを定義し、リクエストが正しくルーティングされるようにします。
error.whitelabel.enabled: false: デフォルトのホワイトラベル エラー ページを無効にし、開発中により有益なエラー メッセージを表示できるようにします。
1. Banner.txt ファイルを作成します
Spring Boot プロジェクトの src/main/resources ディレクトリ内に、banner.txt という名前の新しいファイルを作成します。
2.サービスの詳細をbanner.txt
に追加しますこのファイルにはテキストや ASCII アートを追加できます。以下に例を示します:
import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Contact; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.License; import org.springframework.boot.info.GitProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class OpenAPIConfig { @Bean public OpenAPI customOpenAPI(GitProperties gitProperties) { return new OpenAPI() .info(new Info() .title("Book Catalog API") .description("REST API for managing a book catalog. Application version: "+ gitProperties.get("build.version")) .version("1.0.0") .contact(new Contact() .name("Book Catalog Team") .email("support@bookcatalog.com") .url("https://github.com/vlaship/book-catalog")) .license(new License() .name("MIT License") .url("https://opensource.org/licenses/MIT")) ); } }
このアプローチは、アプリケーションの起動にプロフェッショナルなタッチを加え、貴重な情報が一目で分かるように提供します。
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class OpenApiController { @GetMapping("/") public String index() { return "redirect:swagger-ui.html"; } }
レイヤー抽出: 依存関係用に個別のレイヤーを作成し、ビルド効率を向上させ、イメージ サイズの更新を削減します。
マルチステージ ビルド: マルチステージ ビルド プロセスを利用してビルド環境をランタイム環境から分離することで、より小型で効率的な最終イメージが得られます。
軽量ベース イメージ: azul/zulu-openjdk-alpine:21-jre-headless のような最小限のベース イメージを使用して、イメージ サイズをさらに小さくします。
このアプローチにより、ビルドが高速化され、イメージ サイズが小さくなり、Docker コンテナー内の Spring Boot アプリケーションの全体的なパフォーマンスが向上します。
以上がSpringBoot Web サービス - 初期構成の一部の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。