面白い記事を見つけました。
What is The Micro API Design Pattern?
The Micro API Design Pattern
PHP Micro API Engine
要注意のは、ここが言ってるのは、Micro APIデザインパターンのことで、スキーマのことではありません。
micro-api.orgがJSON-LDベースで、hypermediaリンクを促進するために作ったスキーマがありますが、名前が同じですからちょっと混乱しやすい。
若干抽象的ですが、特徴として、下記の4点あります。
exposes a Web API (REST- or RPC-style) to its consumer,
is implemented in a single file with reasonable low LOC (lines of code),
relies on a standardized framework and set of dependencies
and does not require local state.
ユースケースは、下記の通りです。
An API which is a proxy or facade for another API, bridging different authentication protocols or converting data formats (e.g. XML to JSON).
A webhook receiver that modifies or checks data before calling other APIs or webhooks.
A simple layer of data validation before data is stored via another API or in a cloud-based storage system.
A mashup combining data from multiple APIs into a single response.
A mockup with static or semi-static responses.
A routing component in a microservice architecture.
自分の理解は、APIと言いながら、データを返すことなく、
簡単なソースコードをクライアントに送られる。
ですので、クライアントはコードのロジックを処理しないといけないから、ただのシンクライアントではない。
メリットとしては、サーバサイドの処理が軽減され、クライアント側の自由度が向上される。
普通に考えたら、確かにAPIサーバとして、
1認証周りを処理して、
2リクエストパラメータ処理して、
3ビジネスロジックが走り、
4DBやデータストーアやキャッシュからデータを取ってから、
5何らかのスキーマに従いレスポンスを組み立て、
6最後にクライアントに送信する
一連の処理の中、
1、2、5はクライアントにさせることが確かに可能だと思うね。
サーバサイドエンジニアとしては、1、2と5ただのCPU単純計算で、
リソース的に無駄かもしれない。
だからクライアントがやってくれたら非常に助かるわけだ。
Comments