API Architecture
-
REST
Representational State Transfer #API Architecture HTTPを基礎とするアーキテクチャ上の制約、定義 Architectural Styles and the Design of Network-based Software ArchitecturesにRESTfulとみなされるための定義が書かれている 第一にサービス提供者と利用者のやり取りがモデル化されていること、が定義となる
-
RPC
Remote Procedure Call #Network #API Architecture リモート上のリクエスト発行をプログラミング言語の関数呼び出しのように利用できるよう抽象化したもの。 ただし実際に関数呼び出しと同等に利用できるわけではなく、ネットワーク上の様々な不測の事態を考慮する必要がある。
-
Protocol Buffers
Protobuf #Version Control #API Architecture Googleによって開発されたインターフェース定義によるバイナリエンコーディングライブラリ。 フィールド名のエイリアスとして扱うフィールドタグ(数値)によってバイトを節約している。 フィールドタグによる互換性に関する仕様の要点は以下。 フィールドの追加 未使用のタグ番号を割り当てることで前方互換あり 必須でなければ後方互換あり フィールドの変更 フィールド名の変更は前方・後方互換あり フィールドの削除 追加時の前方・後方と逆 またProtocol Buffersはフィールド制約である optional と repeated 間の互換性にも対応している。これはバイナリ上でフィールド情報を単純に複数回並べているため。 Protocol Buffers Documentation
-
Open API
#Documentation #API Architecture HTTP APIの動作を記述するためのオープンで標準的な仕様。リクエストからレスポンスまでAPIのライフサイクルを説明できる JSONまたはYAMLでコード管理が可能 Swaggerのようなツール群ではOpen API仕様をベースにドキュメンテーションやテストを用意に実装できる What is OpenAPI? - OpenAPI Initiative
-
サービスメッシュ
#Network #Observability #Security #API Architecture マイクロサービスで行われるようなサービス間通信をルーティング、監視、保護する機能を提供する Kubernetesにおいてはクラスタ単位でサービスメッシュを構築する サービスメッシュはクラスタ内の全てのサービス間通信を制御するコントロールプレーンとコントロールプレーンで指定された作業が実行されるデータプレーン(サービス)の2つの基本要素を持つ。
-
リチャードソン成熟度モデル
#API Architecture Leonard RechardsonによるREST APIの観点からAPI実装の成熟度をレベルに分類したもの 各レベルのタイトルは以下 レベル0 HTTP/RPC レベル1 リソース レベル2 動詞(メソッド) レベル3 ハイパーメディアコントロール QCon 2008での発表は以下 Justice Will Take Us Millions Of Intricate Moves
-
gRPC-Gateway
#Network #API Architecture #REST gRPCにおいて、gRPC serviceをRESTful APIとして提供するためのライブラリ。HTTP+JSONのインターフェースでリバースプロキシサーバーを生成する HTTP仕様はProtocol Buffers上において google.api.http のような HttpRule によって記述する 同リポジトリにはprotoc-gen-openapiv2プラグインも含まれておりOpen API仕様を出力できる gRPC-Gateway | gRPC-Gateway Documentation Website
-
OAuth徹底入門
-
Istio
-
Elastic Load Balancing
#Cloud Native #API Architecture トラフィックを複数のコンピュートリソースにルーティングし分散させ、システムの可用性向上、フォールトトレランスを行うサービスの集まり リソースごとに以下のような種別がある Application Load Balancer Network Load Balancer Gateway Load Balancer What is Elastic Load Balancing? - Elastic Load Balancing
-
gRPC
#Network #API Architecture #HTTP 標準IDLとしてProtocol Buffersを採用するRPCシステム実装。通信プロトコルにはHTTP/2が用いられておりストリーム通信をサポートしている ステートレスなRESTに対し実装次第で状態を持つことで高いパフォーマンスを実現できる CNCF incubating project gRPC
-
マスタリングAPIアーキテクチャ
-
マイクロサービス
#Software Design #API Architecture DDDにおける境界付けられたコンテキストに対応する形でサービスを用意し、サービス間通信を行う設計パターン マイクロという名前の通り、サービスインターフェースが小さく疎結合になっていて各サービスの責務が凝集されていることが望ましい
-
GraphQL
-
Swagger