WebAPIを作る前に考えること - LSUDsとSSKDs、オーケストレーション層

  • 46
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

概要

  • スマホアプリ時代のAPI戦略としてオーケストレーションという層を設けることがポイントになっています。

LSUDsとは

  • Lerge Set of Unknown Developers
  • 大多数向けの未知の外部開発者に向けたAPI(自分でコントロールできない人たち)
  • 誰にでも合うフリーサイズの服にちなんで one-size-fits-all API とも言う

SSKDsとは

  • Small Set of Known Developers
  • 利用者が自分が知っている開発者向けのAPI(自分でコントロールできる人たち)

LSUDsなAPIに求められるもの

  • 汎用的
  • 様々なユースケースを満たす
  • 簡単、わかりやすい
  • 機能の単位が小さい
  • リソース指向 RESTful

SSKDsなAPIに求められるもの

  • クライアント(デバイス)に寄った実装
  • クライアントごとに最適化されたAPI
  • 画面を作るためのおまとめAPIみたいなもの
  • 必要であればRESTfulを捨ててクエリベースなAPIにする
  • SSKDs単体でリリースサイクルが回せる(後述のオーケストレーション層参照

オーケストレーション層

  • LSUDsなAPIを色々叩いたり処理してSSKDsなAPIに変換する層
  • クライアントの要求を満たすような実装をここにいれる
  • アプリ開発者がオーケストレーション層を触ってAPI開発もする
  • LSUDsとは別の、アプリに合わせた高速なリリースサイクルで回せるようにする

オーケストレーション層を挟むことのメリット

  • クライアントごとに最適化したAPIを実装できる
  • 複数クライアントで書かなければいけないロジックをオーケストレーション層に集約できる
  • A/Bテストしやすい
  • バックエンドの開発完了を待たずにAPIスタブを作れるので、クライアントの開発を妨げない
  • APIリリースサイクルをバックエンド本体側から分離できる
  • バックエンドの仕組みを知らなくてもクライアント開発者がAPI開発することも可能

デメリット

  • APIの数が爆増する
  • バックエンドのAPIが増えると、オーケストレーション層でも対応しないといけない
  • 一段レイヤーが増えるのでネットワークコストも増える(実装次第)

イメージ

参考