http - timelines - twitter embed api
API requiere argumentos POST en una cadena de consulta? (3)
Estoy jugando con la API de Twitter y noté algo gracioso: para las actualizaciones, requieren métodos POST pero esperan los argumentos en la cadena de consulta. (Consulte, por ejemplo, la llamada de estado / actualización en su consola de desarrolladores here ).
Obviamente, esto es técnicamente posible, pero ¿por qué alguien lo haría así? ¿Los argumentos POST no pertenecen al cuerpo?
Cualquiera de las opciones es igual de válida. Mi ejemplo favorito para usar parámetros en la URL para un POST es una aplicación que establece puntos de referencia en un mapa. p.ej
POST /map/route/45/waypoints?lat=35&long=74
En este caso, los parámetros tienen más sentido en el URI como identificadores de una ubicación, que solo los parámetros que se pasan en el cuerpo al recurso genérico.
En la arquitectura REST, GET y POST son solo los verbos, que indican si se debe recuperar o crear / actualizar el recurso. URI define la identificación del recurso.
Ejemplo:
POST /student?name=Tom&age=12 >> It will create a new student with name Tom and age 12.
POST /student/10?name=Tom&age=12 >> It will update student with id 20 with name Tom and age 12.
No existe una regla que establezca que los datos deben estar vinculados a la carga útil del cuerpo o URI. Esto es diferente de los conceptos de WEB 1.0 donde los datos de formulario HTML se envían en POST.
Si los argumentos para la API de WEB están en el cuerpo o la consulta depende del encabezado Content-Type que envíe en el POST.
Si por ejemplo es Content-Type: application / json; charset = UTF-8 entonces los argumentos se esperan en el cuerpo como json. Si es Content-Type: application / x-www-form-urlencoded; charset = UTF-8, entonces se esperan los argumentos en la cadena de consulta