Utilice URL para especificar sus objetos, no sus acciones:
Tenga en cuenta que lo que mencionó por primera vez no es RESTful:
/questions/show/<whatever>
En su lugar, debe usar sus URL para especificar sus objetos:
/questions/<question>
Luego, realiza una de las siguientes operaciones en ese recurso.
OBTENER:
Se utiliza para obtener un recurso, consultar una lista de recursos y también para consultar información de solo lectura sobre un recurso.
Para obtener un recurso de pregunta:
GET /questions/<question> HTTP/1.1
Host: whateverblahblah.com
Para enumerar todos los recursos de preguntas:
GET /questions HTTP/1.1
Host: whateverblahblah.com
ENVIAR:
Se usa para crear un recurso.
Tenga en cuenta que lo siguiente es un error:
POST /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
Si la URL aún no se ha creado, no debería utilizar POST para crearla mientras especifica el nombre. Esto debería resultar en un error de recurso no encontrado porque aún no existe. Primero debe PONER el recurso en el servidor. Podría argumentar que al crear una nueva pregunta, también está actualizando el recurso / preguntas, ya que ahora devolvería una pregunta más en su lista de preguntas.
Debería hacer algo como esto para crear un recurso usando POST:
POST /questions HTTP/1.1
Host: whateverblahblah.com
Tenga en cuenta que, en este caso, no se especifica el nombre del recurso, se le devolverá la ruta URL de los nuevos objetos.
ELIMINAR:
Se usa para eliminar el recurso.
DELETE /questions/<question> HTTP/1.1
Host: whateverblahblah.com
PONER:
Se utiliza para crear un recurso o sobrescribirlo mientras especifica la URL de los recursos.
Para un nuevo recurso:
PUT /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
Para sobrescribir un recurso existente:
PUT /questions/<existing_question> HTTP/1.1
Host: whateverblahblah.com
... Sí, son iguales. PUT se describe a menudo como el método de 'editar', ya que al reemplazar todo el recurso con una versión ligeramente alterada, ha editado lo que los clientes OBTENERÁN la próxima vez que lo hagan.
Usando REST en formularios HTML:
La especificación HTML5 define GET y POST para el elemento de formulario .
El atributo de contenido del método es un atributo enumerado con las siguientes palabras clave y estados:
- La palabra clave GET, que se asigna al estado GET, indica el método HTTP GET.
- La palabra clave POST, correlacionada con el estado POST, indica el método HTTP POST.
Técnicamente, la especificación HTTP no lo limita solo a esos métodos. Usted es técnicamente libre de agregar cualquier método que desee, aunque en la práctica esto no es una buena idea. La idea es que todos sepan que usa GET para leer los datos, por lo que confundirá las cosas si decide usar READ. Dicho eso ...
PARCHE:
Este es un método que se definió en un RFC formal. Está diseñado para usarse cuando desea enviar solo una modificación parcial a un recurso, se usaría de manera similar a PUT:
PATCH /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
La diferencia es que PUT tiene que enviar todo el recurso, sin importar qué tan grande sea en comparación con lo que realmente ha cambiado, mientras que PATCH puede enviar solo los cambios.