前書き
なぜ昨今のwebアプリケーションではrestの設計手法で開発されるようになったのかがわからなかったので1990年代に主流だった設計手法(soap)と比べてrestは何が嬉しいかを学習したいと思います。
クライアントとサーバー
soapとrest両方の設計手法ではクライアントとサーバーの関係性は以下のようにすべき(両方とも同じ構造)
要はクライアント側(左)がリクエストを送りサーバー側(右)はリクエストが来るまで何もしないという関係性
こうするメリット.
⇨マルチプラットフォーム(PCやスマホなど)に対応できる.
マルチプラットフォームとは?
⇨異なる機種やOSでも、同じアプリケーションの動作が可能。つまり以下のようにiphoneでもAndroidでもmacでもタブレットでも同じ動作になる。
クライアントからリクエストを送るときのrestとsoapの違い.
rest (HTTPプロトコルGET,POSTなどをベースにして作成)
GET /api/users/123 HTTP/1.1 Host: example.com Accept: application/json
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://example.com/services"> <soapenv:Header/> <soapenv:Body> <ser:GetUserDetailsRequest> <ser:UserID>123</ser:UserID> </ser:GetUserDetailsRequest> </soapenv:Body> </soapenv:Envelope>