Przeglądałem więc kilka artykułów na temat tworzenia REST API. A niektórzy z nich sugerują używanie wszystkich typów żądań HTTP: na przykład PUT
DELETE
POST
GET
. Utworzylibyśmy na przykład index.php i napisalibyśmy API w ten sposób:
$method = $_SERVER['REQUEST_METHOD'];
$request = split("/", substr(@$_SERVER['PATH_INFO'], 1));
switch ($method) {
case 'PUT':
....some put action....
break;
case 'POST':
....some post action....
break;
case 'GET':
....some get action....
break;
case 'DELETE':
....some delete action....
break;
}
OK, przyznam - nie wiem zbyt wiele o usługach internetowych (jeszcze). Ale czy nie byłoby łatwiej po prostu zaakceptować obiekt JSON za pomocą zwykłego POST
lub GET
(który zawierałby nazwę metody i wszystkie parametry), a następnie odpowiedzieć również w formacie JSON. Możemy łatwo serialize / Cofnięcie poprzez PHP json_encode()
i json_decode()
i robić, co chcemy z tych danych bez konieczności zajmowania się różnymi metodami żądania HTTP.
Czy coś mi brakuje?
AKTUALIZACJA 1:
Ok - po przekopaniu się przez różne API i nauczeniu się wielu rzeczy o XML-RPC , JSON-RPC , SOAP , REST doszedłem do wniosku, że ten typ API jest dobry. W rzeczywistości wymiana stosów w zasadzie używa tego podejścia w swoich witrynach i myślę, że ci ludzie wiedzą, co robią Stack Exchange API .