backbone.js から php のコンテキストで、REST API を調査/作成しています。
HTTP 動詞の概念と、それらをいつ使用する必要があるかを理解しています
GET - select
POST - create
PUT - update
DELETE - delete
また、識別子をセマンティックURLとして渡すという概念も理解しています。
GET http://api/users/123
DELETE http://api/users/123
これらの場合、「123」は、ビジネス ロジックがユーザーの取得/削除に使用する ID です。
しかし、POST および PUT コンテキストはどうでしょうか? にリクエストを送るとき
PUT http://api/users/123
APIは、提供されたパラメーターでユーザーID 123を更新します。ここで私の質問が発生します。
更新する入力パラメーターが PUT パラメーターとして送信されると想定します。PHP 構文では、これは次のように表されます: file_get_contents('php://input')
(これは削除リクエストでも同じです。)
これを backbone.js でテストすると、完全に機能します。
しかし、新しい要素を作成しようとすると
POST http://api/users/
入力値が POST パラメータとして送信されると仮定します。php 構文では、これは として表され$_POST
ます。しかし、これは機能しません。
いくつかのテストを行い、Rails スタイルの REST API (バックボーン ドキュメントが示唆するもの) を読んだ後、すべてのリクエスト変数が同じ方法で送信されることに気付きました。file_get_contents('php://input')
すべてのリクエスト タイプのリクエスト パラメータを取得するために使用するコードを変更すると、バックボーンは完全に機能します。
この標準は REST API にとって適切ですか? それとも「レールフレーバー」のものですか?