2
1

Spring Cloud Gatewayを使用してAPIゲートウェイを構築してみた

Last updated at Posted at 2024-03-05

Spring Cloud Gatewayとは?

Spring Cloud Gatewayは、Spring BootフレームワークとSpring Cloudプロジェクトの一部であるAPIゲートウェイで、シンプルかつ効果的な方法でAPIへのルーティングを提供し、セキュリティ、監視/メトリクス、回復力などの横断的な関心事をAPIに提供することを目的としている。

主な機能

  • ルーティング: さまざまな条件に基づいてリクエストを適切なサービスにルーティングする
  • フィルター: リクエストとレスポンスを処理するフィルターを適用できる
  • 認証と認可: OAuth2、JWTなどの認証と認可メカニズムをサポートする
  • 監視: Prometheus、Micrometerなどのツールを使用してAPIの使用状況を監視できる
  • サーキットブレーカー: 障害が発生したサービスへのリクエストを自動的に遮断し、システム全体の安定性を保つ

APIゲートウェイとは?

APIゲートウェイは、複数のAPIをまとめて管理するためのプラットフォームで、APIの開発、公開、保護、監視を容易にし、開発者とバックエンドサービス間の仲介役として機能する。

主な機能

  • APIの公開と管理: APIを安全かつ効率的に公開し、バージョン管理や認証、アクセス制御などの機能を提供する
  • セキュリティ: APIへのアクセスを制御し、悪意のある攻撃から保護する
  • 監視と分析: APIの使用状況を監視し、パフォーマンスやエラーを分析する
  • 開発者向けツール: APIの開発とテストを容易にするツールを提供する

プロジェクトを作成する

Project: Maven
Language: Java
SpringBoot: 3.2.4
Group: dev danvega
Artifact: gateway-demo
Name : gateway-demo
Description: SCG Demo
Package name: dev danvega gateway-demo
jar 21

Dependencies
Gateway

コードを編集する

①resources/application.properties ⇨ application.yamlに名前を変更し、編集する

resources/application.yaml
spring:
  cloud:
    gateway:
      routes:
        - id: posts-route
          uri: http://localhost:8081

②下記のコードを追記する

pom.xml

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
    <version>3.1.2</version>
</dependency>

参考サイト

Building an API Gateway in Java with Spring Cloud Gateway
Spring Cloud Gatewayで流量制限をかける

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1