PHP - Duda API REST - la forma correcta

 
Vista:
Imágen de perfil de Adrián
Val: 5
Ha aumentado su posición en 27 puestos en PHP (en relación al último mes)
Gráfica de PHP

Duda API REST - la forma correcta

Publicado por Adrián (2 intervenciones) el 25/02/2019 10:53:03
Muy buenas a todos,

Espero que alguien pueda arrojarme algo de luz, os cuento un poco mi tesitura:

Estoy desarrollando una API REST en PHP con el framework SLIM, la verdad es que el framework es ligero y me esta funcionando muy bien.

Estoy desarrollando el API de forma que llamadas y respuestas viajen en formato JSON, y me gustaría seguir los estándares en cuanto a las peticiones, es decir:

GET:
Solicitar información del API

POST:
Crear nuevos registros

PUT:
Actualizar por completo un registro existente (Pisar)

PATCH:
Modificar parte de un registro existente

Etc...


El problema llega cuando quiero obtener información enviando filtros, por lo que he leído (corregidme por favor si me equivoco) las peticiones GET solo tienen cabecera y al parecer es un conflicto a la hora de enviar el "data" JSON...

Las peticiones las hago via AJAX (PostMan es capaz de enviar el JSON mediante GET sin problemas) pero cuando quise interactuar con el API desde WEB me fije en que las llamadas incluían las variables en la URL (Sí... no se me ha olvidado que estoy haciendo una llamada GET), pero al hacerlo el data es codificando y no se sí está "rompiendo" el JSON.

Os pongo un ejemplo de lo que se envía cuando cotilleamos desde el depurador del navegador:

Esta es la URL final a la que llama:

https:api/filterJobs?{%22list%22:%22myTasks%22}


Pero a pesar de eso, el QueryString que muestra es el siguiente:

{"list":"myTasks"}:


He probado a pasarle al JSON funciones de URLEncode, pero no parece que fueran por ahí los tiros... Ya que la respuesta es de que no recibe los parámetros... Estoy bastante seguro de que es por como recojo la información en el back, utilizo una función de phpSlim

1
"$request->getParsedBody();"

Y si GET no lleva body, ahí no encontrará nada...

¿La solución parece sencilla no? Modificar en el back la recogida de datos para las peticiones GET... Pero no encuentro información que me confirme esto...

¿Es así como realmente se hace? ¿No hay alguna solución alternativa donde se pueda montar una petición AJAX web con un "data" JSON igual que llega a hacer PostMan?

Sí alguien tiene experiencia con API REST o llega a un razonamiento que le parezca correcto me vendría bien el punto de vista para salir de dudas .

Un saludo!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Adrián
Val: 5
Ha aumentado su posición en 27 puestos en PHP (en relación al último mes)
Gráfica de PHP

Duda API REST - la forma correcta

Publicado por Adrián (2 intervenciones) el 26/02/2019 10:26:33
Buenas,

Por si a alguien le interesase dejo aquí la solución por la que me incliné finalmente...

El framework SLIM me invitaba a agregar en la URL algo similar a:

"https://api/filterJobs/{ValorA}/{ValorB}/{..."


Cosa que no me terminaba de convencer ya que en caso de tener muchas variables puede llegar a dar problemas (Además de ser tedioso) y se necesita mandar y conocer la posición de todas las variables... (La referencia de cada variable sería su posición, solo mandas el valor)

Para algo dinámico como lo que tengo creado (Tirarle filtros al back y que este reaccione en consecuencia) no es una solución practica...

Por eso me decidí por enviar directamente un objeto JS desde el AJAX en el data (A pesar de estar usando el método GET) y cambar la recepción en el back (Sí, finalmente el camino que parecía más sencillo ).

Termine recogiendo los datos directamente de la variable "$_GET", el parseo de Objeto JS a variables lo hace de forma automática y los saneamientos del back son los mismos que los que usaba antes (a fin de cuentas el medio en el que viaje la información es independiente de las correspondientes comprobaciones...).

Y poco más,

Un saludo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Xavi
Val: 1.009
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Duda API REST - la forma correcta

Publicado por Xavi (143 intervenciones) el 26/02/2019 12:04:08
Gracias por comentarlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar