ホームページ >Java >&#&チュートリアル >SpringBoot Web サービス - 初期構成の一部

SpringBoot Web サービス - 初期構成の一部

Susan Sarandon
Susan Sarandonオリジナル
2025-01-06 01:36:43714ブラウズ

SpringBoot Web Service - Part  Initial Configuration

この投稿では、Spring Boot アプリケーションで OpenAPI を構成し、ルート URL から Swagger UI への便利なリダイレクトを追加する方法を説明します。この設定により、API ドキュメントが改善され、開発者がアクセスしやすくなります。

OpenAPI Beanの構成

まず、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 リダイレクト コントローラー

次に、ユーザーをルート 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.yaml の更新

この構成ファイルは、多くの場合 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 アプリケーションのいくつかの主要な領域をカバーします。

  1. アプリケーションのプロパティ:

name: アプリケーションの名前を定義します。ここでは book-catalog に設定します。

version: アプリケーションのバージョンを指定するために、ビルド プロセス中に設定される可能性があるプレースホルダーを参照します。

  1. MVC 構成:

problemdetails.enabled: 例外の応答本文で詳細な問題レポートを有効にします。

  1. 管理エンドポイント:

endpoints.web.exposure.include: '*':** 監視と管理の目的ですべてのアクチュエータ エンドポイントを公開します。

info.git.mode: full: /info エンドポイントで詳細な Git 情報を提供します。

  1. サーバー構成:

port: サーバーが受信リクエストをリッスンするポートを設定します (デフォルトは 8080、ここでは 8888 に設定します)。

servlet.context-path: アプリケーションのコンテキスト パスを定義し、リクエストが正しくルーティングされるようにします。

error.whitelabel.enabled: false: デフォルトのホワイトラベル エラー ページを無効にし、開発中により有益なエラー メッセージを表示できるようにします。

Banner.txtの追加

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"))
                );
    }
}

このアプローチは、アプリケーションの起動にプロフェッショナルなタッチを加え、貴重な情報が一目で分かるように提供します。

Dockerfileの追加

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:コンストラクタ次の記事:コンストラクタ