Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

概要

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

イメージ

参考

peka2
Webエンジニア iOSアプリエンジニア DQ10プレイヤー
gamewith
GameWithは、ゲームをプレイされる皆様がより深くゲームを楽しんで頂ける環境を提供するべく設立されました。あなたがゲームをする時のお供になる。これが私達の目標です。
https://gamewith.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした