Micro API Design Pattern

面白い記事を見つけました。
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単純計算で、
    リソース的に無駄かもしれない。
    だからクライアントがやってくれたら非常に助かるわけだ。