API Gateway パターンに関する図(PlantUML)
API Gateway パターンに関する図を PlantUML で作成しました。
この図を含んだブログ記事も記載しているので、興味あるかたは以下からどうぞ。
すごいよ、API Gateway パターン! 〜 マイクロサービスアーキテクチャの設計パターン 〜 - ふじやまエッグの日々
API Gateway パターン
クライアントとバックエンドのサービスの間に玄関口となるAPIゲートウェイを置くのが、API Gateway パターンです。
APIゲートウェイがある場合
APIゲートウェイが外部からのリクエストを一手に引き受けます。
コード
@startuml
title APIゲートウェイがある場合
skinparam agent {
roundCorner 20
}
skinparam rectangle {
roundCorner 20
}
agent クライアントアプリ as client
rectangle バックエンド as backend {
agent APIゲートウェイ as gateway
agent サービスA as serviceA
agent サービスB as serviceB
agent サービスC as serviceC
}
client -right-> gateway
gateway-down-> serviceA
gateway-down-> serviceB
gateway-down-> serviceC
@enduml
APIゲートウェイがない場合
APIゲートウェイがない場合は、以下のように外部からのエントリポイントが複数に分散します。これは、外部からの攻撃ポイントも複数に分散することにもつながり、セキュリティリスクを高めることになります。
コード
@startuml
title APIゲートウェイがない場合
skinparam agent {
roundCorner 20
}
skinparam rectangle {
roundCorner 20
}
agent クライアントアプリ as client
rectangle バックエンド as backend {
agent サービスA as serviceA
agent サービスB as serviceB
agent サービスC as serviceC
}
client -down-> serviceA
client -down-> serviceB
client -down-> serviceC
@enduml
API Gateway シーケンス図
APIゲートウェイを経由しない場合
APIゲートウェイを経由しない場合は、クライアントから複数のサービスから必要な情報を取得するようになります。シーケンス図は、以下のようになります。
コード
@startuml
title APIゲートウェイを経由しない場合
participant “ECサイト注文画面” as ecsite
participant “商品カタログサービス” as catalog
participant “レビューサービス” as review
participant “レコメンデーションサービス” as recomendation
ecsite -> catalog: 商品情報取得()
activate catalog
catalog-> ecsite : 商品情報
deactivate catalog
ecsite -> review: レビューリスト取得()
activate review
review -> ecsite : レビューリスト
deactivate review
ecsite -> recomendation: レコメンデーションリスト取得()
activate recomendation
recomendation -> ecsite : レコメンデーションリスト
deactivate recomendation
@enduml
APIゲートウェイを経由する場合
APIゲートウェイを経由する場合は、クライアントとのやりとりを最小限におさえることができます。
コード
@startuml
title APIゲートウェイを経由する場合
participant “ECサイト注文画面” as ecsite
participant “APIゲートウェイ” as apigateway
participant “商品カタログサービス” as catalog
participant “レビューサービス” as review
participant “レコメンデーションサービス” as recomendation
ecsite -> apigateway: 注文画面用情報取得()
activate apigateway
apigateway-> catalog: 商品情報取得()
activate catalog
catalog-> apigateway: 商品情報
deactivate catalog
apigateway-> review: レビューリスト取得()
activate review
review -> apigateway: レビューリスト
deactivate review
apigateway-> recomendation: レコメンデーションリスト取得()
activate recomendation
recomendation -> apigateway: レコメンデーションリスト
deactivate recomendation
apigateway -> ecsite : 注文画面用情報
deactivate apigateway
@enduml
最後に
APIゲートウェイは、マイクロサービスアーキテクチャにおける玄関口の役割を担います。そんなAPIゲートウェイに関して以下の記事にまとめているので、興味あるかたはぜひどうぞ。
すごいよ、API Gateway パターン! 〜 マイクロサービスアーキテクチャの設計パターン 〜 - ふじやまエッグの日々
Author And Source
この問題について(API Gateway パターンに関する図(PlantUML)), 我々は、より多くの情報をここで見つけました https://qiita.com/fujiyamaegg/items/494eeaf8b2956e379d55著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .