116
105

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-02-25

概要

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

LSUDsとは

  • Large 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が増えると、オーケストレーション層でも対応しないといけない
  • 一段レイヤーが増えるのでネットワークコストも増える(実装次第)

イメージ

参考

116
105
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
116
105

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?