bosq.log

ざっくばらんに記録する

API 関連技術のメモ

APIの通信関連の技術についての雑なメモです.

まとめでなくメモです.比較として妥当かは微妙なのでその辺もその内まとめます.とりあえず利点と用途に絞って調査.

実際に使ったわけでないので間違っているかもしれません.

 

Open API

https://swagger.io/resources/open-api/

RESTful APIスキーマYAMLJSON定義できる.

通信自体はRESTful APIなのでHTTP.

ドキュメント生成などがメイン機能やスタブの生成ができる

GraphQL

https://graphql.org/

クエリ言語.スキーマを定義しておくことで,必要なリソースをクライアント側で指定できる.そのため,RESTと異なり単一のエンドポイントでよい.

基本的にインターフェースはJSONのよう.(多分)

メリット

- 余分なデータを受け取らない

  - 要らないデータ分のデータ通信量が減る

  - サーバ側のAPI修正が不要

- リソースは,型とフィールドによって整理できる

gRPC

https://grpc.io/

google製のRPCフレームワーク

インターフェースはProtocol Buffersがある.

Protocol BuffersはGoogle製のインターフェース定義言語(IDL).

データをバイナリシリアライズするので速いらしい.

似たようなものでMessage Packというのもあり,こちらはスキーマ定義しないが高速なよう.

 

参照

OpenAPI

https://qiita.com/teinen_qiita/items/e440ca7b1b52ec918f1b

https://techblog.zozo.com/entry/openapi3/go

GrapQL

https://qiita.com/SiragumoHuin/items/cc58f456bc43a1be41b4

gRPC

https://qiita.com/disc99/items/cfca50a32240284578bb

https://qiita.com/oohira/items/63b5ccb2bf1a913659d6

https://uqichi.net/posts/protocol-buffer-message-pack/