今やRESTはデファクトスタンダードとして広く使用されているアーキテクチャかと思いますが、RESTful APIというのはリソース指向なのでしょうか。
HTTPのように定義が明確になっていない(RFCなどがない)からか、紹介されているサイトによって少し表現が異なり、混乱しています。この定義が収束していないという理解が正しいのでしょか。
どなたか、RESTを理解する上で有益な情報源を教えて頂きたいです。
https://www.redhat.com/ja/topics/api/what-is-a-rest-api
RESTの原典にあたりたいならこちら
https://ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
現実のAPIの全ての操作をHTTPの動詞やステータスコードで表せるわけではないので、その部分の実装は会社によりぶれがあるように感じます。
POSTメソッドはデータの送信に使いましょう、となっているのに、現実では検索機能で結果的にReadの目的でPOSTメソッドが使用されていることを何度か遭遇しました。
やはり、現場によって少し実装にブレがありそうですね。ありがとうございます。
POSTメソッドでないとPayloadが送信できないからでしょう。
はい、その通りです。そのため検索処理などの場合は、クエリパラメータを使用するような実装がRESTの原則上では最適なのかと考えたことがありました。
しかし、どこかで検索条件のテキストが長すぎる場合は、bodyでテキストを渡すような実装の方が良い場合があるとも読みました。データの送信という意味でPOSTメソッドであることは理解できるが、同時にReadという行為をしたいためGETメソッドで実装できないものなのかと考えた次第です。
GETメソッドは2,048バイトの制限があるので特定の条件下しか利用できません。