Una API REST puede tener argumentos en varios lugares:
- En el cuerpo de la solicitud : como parte de un cuerpo json u otro tipo MIME
- En la cadena de consulta , p. Ej.
/api/resource?p1=v1&p2=v2
- Como parte de la ruta URL , p. Ej.
/api/resource/v1/v2
¿Cuáles son las mejores prácticas y consideraciones para elegir entre 1 y 2 anteriores?
2 vs 3 está cubierto aquí .
Respuestas:
Por lo general, el cuerpo del contenido se usa para los datos que se van a cargar / descargar al / desde el servidor y los parámetros de consulta se usan para especificar los datos exactos solicitados. Por ejemplo, cuando carga un archivo, especifica el nombre, el tipo de mímica, etc. en el cuerpo, pero cuando busca una lista de archivos, puede usar los parámetros de consulta para filtrar la lista por alguna propiedad de los archivos. En general, los parámetros de la consulta son propiedad de la consulta, no de los datos.
Por supuesto, esta no es una regla estricta, puede implementarla de la manera que considere más apropiada / que funcione para usted.
También puede consultar el artículo de wikipedia sobre la cadena de consulta , especialmente los dos primeros párrafos.
fuente
Asumiré que está hablando de solicitudes POST / PUT. Semánticamente, el cuerpo de la solicitud debe contener los datos que está publicando o parcheando.
La cadena de consulta, como parte de la URL (un URI), está ahí para identificar qué recurso está publicando o parcheando.
Usted pidió las mejores prácticas, la siguiente semántica es mía. Por supuesto, usar sus reglas generales debería funcionar, especialmente si el marco web que usa abstrae esto en parámetros .
Que más sabes:
fuente
Las siguientes son mis reglas generales ...
Cuándo usar el cuerpo:
Cuándo usar la cadena de consulta:
curl
application/octet-stream
Tenga en cuenta que puede mezclar y combinar: coloque los comunes, los que deberían ser depurables en la cadena de consulta, y arroje todo el resto en el json.
fuente