Objetivo: Una API REST
Pregunta: es el método que tengo debajo de un cierto API REST o es que falta algo así como me dijeron?
Esta es una cuestión de 3 partes ..¿Encabezados correctos para PHP RESTful Application?
Supongamos que tengo un proyecto PHP que tiene una API que devuelve datos en formatos XML o JSON, usted podrá acceder a la API como esto más adelante ...
server.com/article/123 | Returns ID 123 using GET
server.com/article/new | Creates a new article using POST
server.com/article/123/edit | Edits an article with the ID 123 using POST
server.com/article/123/delete | Deletes article with ID 123 using POST
1)
siempre he leído también que PUT
debe ser usado para la edición de objetos, a continuación pongo la palabra POST
como el usuario enviaría un POST
a THT URI de la acción de eliminación, debo utilizar PUT
en php usando algo como esto en su lugar?
$_PUT = array();
if($_SERVER['REQUEST_METHOD'] == 'PUT') {
parse_str(file_get_contents('php://input'), $_PUT);
}
2)
me dijeron en una pregunta que escribí en SO hace un tiempo que esto es similar a una API REST pero eso no es así, la respuesta que obtuve fue esta ...
In short, your service is not RESTful, but it is close. Rather than specify actions (edit, delete, ...) in URL segments, you will want to make use of HTTP verbs (GET, PUT, POST, DELETE).
o el chico no sabía lo que estaba hablando o simplemente no lo consigue, después de leer innumerables artículos sobre el tema, y comparando con cada API que puedo encontrar, cómo es mi ejemplo anterior nO ¿Sosegado?
Me gustaría hacer una API RESTful, por favor me ayuda a corregir mi ejemplo anterior si es necesario?
3)
también asumiendo Planeo devolver una respuesta JSON para el usuario con algo como esto ...
<?php
header('HTTP/1.1 200 OK');
header('Content-type: application/json');
$data = // my code that returns the appropriate data;
echo json_encode($data);
?>
Es que la forma correcta de devolver el resultado a un usuario o soy yo ¿Echando de menos algo? Muchos artículos y preguntas hablan sobre el concepto pero no entran en el código real como mis ejemplos.
gracias voy a ver los tipos de mimo y la API API, también esa fue una de las mejores explicaciones. Lo único de lo que todavía no estoy seguro es del 'PUT' Si estuviera accediendo a esta API con PHP, ¿cómo podría enviar una solicitud' PUT' de lo que no estoy seguro. Lo siguiente en mi lista es Autenticación con algo como OAuth, si estoy enviando 'GET' a' server.com/articles/123', entonces no estoy seguro de cómo pasar en cualquier autenticación a menos que tal vez se envíe usando 'GET' también pero estoy seguro de que estos merecen su propia pregunta – JasonDavis