0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

広義のRESTについて理解する 💡

Last updated at Posted at 2025-09-02

この記事でわかること
「RESTとSOAPの違い」と「広義のRESTがなぜ現場で広まったか」

背景 🖼️

以下の本で広義のRESTについて述べられていました。

改めて整理したいと思います。

RESTとは 📚

本書でもwikipediaを紹介していました。

まずRESTは以下二つの定義がされています。

FieldingのRESTアーキテクチャスタイルの原則に合わせたWebサービスシステム

RPCスタイルに合わせた簡易なXML(やJSON)+HTTPインターフェイスを採用したシステム(SOAPは使わない)

ちなみこちらがFieldingさんのRESTについて定義されたものです。

https://ics.uci.edu/~fielding/pubs/dissertation/top.htm

広義のRESTとは 💡

広義のRESTとは2つ目のRPCスタイルに合わせた簡易なXML(やJSON)+HTTPインターフェイスを採用したシステム(SOAPは使わない)を意味しています。
1つ目のFieldingのRESTの定義にも従いますが全てにおいてその定義に沿うわけではない為と本書には記載されていました。

例えばsearchという動詞をURIに含めることはFieldingのRESTの定義では推奨されていませんが、わかりやすさの為にsearchを使うケースがあります。

RPC(Remote Procedure Call,遠隔手続き呼び出し)とは :calling:

「関数呼び出し」をローカルではなく 別の環境に接続して代わりに実行すること

この記事ではクライアント側のAPI呼び出しの関数名とそのエンドポイントでイベントハンドラーとなるバックエンド側のDB操作の関数名が同じことを例として挙げていました。

SOAPとは

サーバーに対する処理要求や結果をXMLで表現し、それらをHTTPでやりとりすることでRPCを実現することを目指したもの

SOAPは簡単なRPCコールでも以下の理由で情報が多くなりました。

  • 冗長さ:単純なリクエストでも必ずEnvelope, Header, Bodyといった入れ子構造を持つ必要がある
  • 複雑さ:WS-Securityなど多数の拡張仕様をサポートしようとした結果、開発者の学習コストが高騰した

SOAP:標準化や相互運用性は強力だが重い
広義のREST:標準に厳密には従わなくても「HTTP + JSON」でシンプルに始められるので現場で普及

よってSOAPは広義のRESTよりも導入ハードルが高いとわかります。

参考

最後に

  • 広義のRESTについて概要を掴めました
  • APIの歴史について理解が足りてないので勉強したいと思います
  • CORBAについても理解したいと思います
  • API設計のノウハウについて勉強したいです
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?