Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Obtener desde PHP variable enviada mediante REST

Estas en el tema de Obtener desde PHP variable enviada mediante REST en el foro de PHP en Foros del Web. Hola a todos Estoy desarrollando un web service REST para que me inserte datos que le envio en un json en la base de datos ...
  #1 (permalink)  
Antiguo 14/06/2012, 03:33
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 11 años, 10 meses
Puntos: 12
Pregunta Obtener desde PHP variable enviada mediante REST

Hola a todos

Estoy desarrollando un web service REST para que me inserte datos que le envio en un json en la base de datos MySQL.
Tengo una aplicacion en Delphi que envia la peticion al REST tal que asi:

respuesta := http.PostJson('http://localhost/APIRest/index.php',json);

siendo json un string que codificado en json, del tipo:

[
{"NUMERO":"1","DIA":"08-10-2010","HORA":"12:53:35","TOTAL":"10.00"},
{"NUMERO":"2","DIA":"08-10-2010","HORA":"12:53:35","TOTAL":"12.00"},
{"NUMERO":"3","DIA":"08-10-2010","HORA":"12:53:35","TOTAL":"8.00"}
]

Creo que hasta aqui ninguna duda
-----------------------------------------------------------------------------------------------

Mi pregunta es como recogo la variable "json" desde el archivo php que contiene el REST, ya que el tipico $_POST no funciona. Quiza me sirva alguna variable del servidor o algo asi? si alguien tiene alguna idea de como hacerlo me ayudaria bastante.

Gracias de antemano por vuestro tiempo
  #2 (permalink)  
Antiguo 14/06/2012, 07:18
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Obtener desde PHP variable enviada mediante REST

Cita:
Iniciado por jpint
Mi pregunta es como recojo la variable "json" desde el archivo php que contiene el REST, ya que el tipico $_POST no funciona. Quiza me sirva alguna variable del servidor o algo asi? si alguien tiene alguna idea de como hacerlo me ayudaria bastante.
Desde PHP no recoges el resultado del REST, porque la idea es que el service ni se entere quien hace la petición, simplemente envía el resultado, por supuesto, debes realizar alguna validación de ser necesario.

Tu script en PHP debe acceder al REST (puede ser por medio de cURL, aquí mismo en FDW hay un excelente aporte al respecto), leer el json, interpretarlo y, finalmente, realizar las operaciones necesarias en base de datos.

P.D. Bienvenido a FDW.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 14/06/2012, 08:23
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Obtener desde PHP variable enviada mediante REST

Triby, lo primero gracias por contestar.

Lo de utilizar json lo he hecho otras veces y lo he escogido en esta ocasion por eso mismo, su sencillez de manejo en php.

No se si me he explicado demasiado bien. El REST esta escrito en php, no envia un php. Desde una aplicacion hecha en Delphi es desde donde le envio un POST, y es desde éste PHP (el REST) desde el que quiero insertar un registro en la base datos, pero que en hacer eso no habrúa ningún problema.

La peticion que envia la aplicacion tiene 2 parametros, la direccion y un string:

respuesta := http.PostJson('http://localhost/APIRest/index.php',json);

"Json" es un string que quiero recoger desde el PHP (el REST) para luego hacer con ese string lo que sea. Ahora me dejas con la duda de si se puede hacer o no, lo que me vendria bien es que hubiera una variable que me dejara obtener ése parámetro (como hacer $_POST o algo así).
  #4 (permalink)  
Antiguo 14/06/2012, 12:47
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Obtener desde PHP variable enviada mediante REST

Ok, es posible que los datos enviados por http.PostJson no sean del tipo variable=valor y, entonces, PHP no los integra a $_POST.

Podrías probar a leer la información de la petición y buscar ahí tus datos:

Código PHP:
Ver original
  1. // Leer info de petición
  2. $data = file_get_contents("php://input");
  3.  
  4. // Guardar el contenido en archivo para revisarlo después de la ejecución
  5. // y saber cómo obtener lo que necesitas
  6. file_put_contents('datosjson.txt', var_export($data, true));

Más info sobre php:// - http://se2.php.net/manual/es/wrappers.php.php
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 15/06/2012, 01:15
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Obtener desde PHP variable enviada mediante REST

era justo lo que necesitaba, se ve que la primera vez no me habia explicado muy bien, muchas gracias me ha servido de mucha ayuda
si no te importa y si lo sabes me podrias explicar por qué esta linea, la habia viusto por hay en algun metodo PUT pero como no sabia que significaba no la utilicé

$data = file_get_contents("php://input");

y gracias otra vez

Última edición por jpint; 15/06/2012 a las 01:36

Etiquetas: rest, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:38.