Open1
REST 以外の API 設計手法について🌟
REST 以外の API 設計手法について🌟
- REST が発表されてから 20 年以上が経過し、当然ながら技術動向も大きく変化しています。
- そのため、REST 以外の設計手法にも注目しておくべきです。
- 現在、REST に対抗する代替手法として gRPC や GraphQL が存在し、それぞれ独自の利点を持っています。
- 当初は、RPC のようなメソッド指向のインタフェースで分散システムを構成することの複雑性という課題感から、シンプルで柔軟な REST が登場しました。
- ここでいうシンプルさは、「リソースを定義し、HTTP メソッドで操作する」という一貫性を保つことによる「汎用性」と捉えることができます。
- しかし現在、マイクロサービスによる通信の増加や複雑さによって、汎用性よりも応答性能を重視したい場合もあるでしょう。
- そのような状況において、gRPC や GraphQL は有効な選択肢となります。
- マイクロサービスにおけるフロントとBFFとの通信など、それ専用と言えるインタフェースは代表例と言えます。
- これらの通信手法は必ずしもシステム全体でどれかひとつに統一すべきものではなく、状況に応じて適切に選択することができます。
- いずれにしても、REST は現代においても有効な API 設計手段です。
- 設計や実装がシンプルで理解しやすく、HTTP プロトコルを採用していることから、外部に公開する API の仕様としても適していると言えます。