REST API を構築しています。実際、私は共通のガイドとルールを理解しています。
しかし、リクエストで本文を介してデータを送信する必要があるため、DELETE メソッドに問題があります。この DELETE メソッドは本文を無視します。
DELETE メソッドで body 経由で送信するデータを尋ねる場合は、「url」とその他のパラメーターです。もちろん、「url」にはデータベース内の id があるので、DELETE を問題なく使用できますDELETE https://api.example.com/content/url:url_id
。しかし、IDを渡すのではなく、URL自体と他のパラメーターを渡すことにしました。私のビジネス ロジックと要件により、DELETE メソッドで ID ではなく URL を渡す必要があります。
したがって、読んだ後、プロキシが DELETE および PUT メソッドをブロックしていることもわかりました。また、HTML フォームは GET および POST メソッドのみをサポートします。
REST API でGET
のみ使用する方がよいと考え始めています。POST
だから私はこのような削除とオブジェクトまたはリソースのために POST を使用することができます:
POST /content/delete/url
Body :
url : xxxx
param1 : xxxx
param2 : xxx
しかし、「REST API Design rulebook, O'reilly」の 18 ページには、
「どのCRUD機能が実行されるかを示すために、HTTPリクエストメソッドを使用する必要があります」
次のアンチパターンは、すべきでないことの例です。
GET /deleteUser?id=1234 GET /deleteUser/1234 POST /users/1234/delete
検索してもう一度読んだ後、私はいくつかの解決策を見つけました
使用して
X-HTTP-Method-Override
(api.flickr.com/services/rest/?method=flickr.collections.getInfo)
flickerやflicker などの API メソッド名を使用するmailchimp(api.mailchimp.com/1.3/?method=campaignDelete)
「X-HTTP-Method-Override」を使用する解決策1が好きだと思います。どう思いますか?
Google は X-HTTP-Method-Override を使用しているようです。これを参照してください https://developers.google.com/gdata/docs/2.0/basics
Flicker と Mailchimp は、ソリューション 2 のようにメソッド名を使用します