SOAP vs REST

SOAPとREATに関する、現時点の理解メモ。
とりあえず特徴をつかむことが目的。

REST

  • HTTPでリクエス
  • XMLでレスポンス
  • とにかく簡単に使える。
  • シンプルなパラメータ(GETパラメータか、ユニークなURIをもつかは、設計ポリシーの問題と思われる)

SOAP

  • HTTPでリクエス
  • XMLでレスポンス
  • 複雑な入力パラメータを渡せる
    • 例えば、繰り返し項目とかも可能。(RESTではできないのか?未確認)
  • 入出力のバリデーションが可能
    • 型を定義し、数値型でないとエラーにするなど可能。(どこのレイアでエラーが発生するか?未確認)
  • WS-*が使えるので、拡張性に優れる
  • パラメータはSOAPエンベロープ形式で渡す。構造を持つので、サービスの呼び出しはRESTより面倒。
  • 学習はRESTより大変

疑問など諸々

  • トランザクション管理は?
  • パフォーマンスは?
    • 大量のデータを登録する
    • 大量の一覧を取得する
  • 変更しやすさは?
    • 入力パラメータを増やす場合は?減らす場合は「使わない」だけ?
    • 出力項目を増やす場合は?減らす場合は「使わない」だけ?
    • 項目の増減に耐えるような設計上の工夫は?
  • 拡張性はミドルで吸収?
  • エラーはどうやって返す?