我正在學習如何構建REST API以在具有舊API的系統上實現。舊的(和新的)API需要認證,它以API密鑰的形式出現。構建REST API:使用PUT,PATCH和DELETE API鍵
使用舊的API,您將POST到URL,其中一個POST參數將成爲您的API密鑰。
使用REST API,我得到API密鑰可以作爲GET或POST方法的GET或POST參數傳遞,但是如何將它傳遞給PUT,PATCH和DELETE,以及如何提取PHP中的API密鑰?
我正在學習如何構建REST API以在具有舊API的系統上實現。舊的(和新的)API需要認證,它以API密鑰的形式出現。構建REST API:使用PUT,PATCH和DELETE API鍵
使用舊的API,您將POST到URL,其中一個POST參數將成爲您的API密鑰。
使用REST API,我得到API密鑰可以作爲GET或POST方法的GET或POST參數傳遞,但是如何將它傳遞給PUT,PATCH和DELETE,以及如何提取PHP中的API密鑰?
我會建議你檢查這個question但總結你應該把它放在HTTP授權頭!
有數以百計的教程,可以幫助你用PHP代碼中,我用這個幾個月前: https://secure.php.net/manual/en/function.getallheaders.php
您可以發送PUT,PATCH和DELETE的數據,與POST相同。 舉例捲曲:
$data = array("key" => 'someKey');
$ch = curl_init('url');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$response = curl_exec($ch);
這不是如何設計REST API的方式。建議閱讀https://martinfowler.com/articles/richardsonMaturityModel.html –
完全同意你的看法。這個答案是如何發送數據。 – vstelmakh
的API密鑰應在「授權」頭提出請求(GET,POST時設置,PUT ,PATCH和DELETE)。閱讀這個例子:https://www.sitepoint.com/php-authorization-jwt-json-web-tokens/ –