Digamos que tengo un modelo llamado John con esos parametros:Backbone.js y API REST con Silex (PHP)
{
Language : {
code : 'gr',
title : 'Greek'
},
Name : 'john'
}
Así que ahora cuando puedo activar John.save()
que los publicara al servidor:
post params http://o7.no/ypvWNp
con esas cabeceras:
El código en Silex es muy simple:
<?php
require_once __DIR__.'/silex.phar';
$app = new Silex\Application();
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
// definitions
$app['debug'] = true;
$app->post('/api/user', function (Request $request) {
var_dump($request->get('Name'));
$params = json_decode(file_get_contents('php://input'));
var_dump($params->Name);
});
$app->run();
pero primero var_dump
devuelto nulo segundo var_dump por supuesto funciona ya me estoy haciendo la solicitud directamente desde php://input
recursos. Me pregunto cómo podría conseguir utilizando los parametros solicitud objeto de Silex
Gracias
Hola, muchas gracias! Esa fue una solución! Aunque creo que Silex debería cuidarlo de manera predeterminada sin la necesidad de agregar un filtro 'before'. En cuanto al tipo de contenido, '$ request-> headers-> get ('Content-Type')' devuelve 'application/json; charset = UTF-8' así que preferiría marcar de esa manera: 'if ('application/json' === strstr ($ request-> headers-> get ('Content-Type'), ';', true)) 'o para ser más a prueba de balas así:' if (false! == strpos ($ request-> headers-> get ('Content-Type'), 'application/json')) ' – panosru
' 0 === strpos ('incluso, ajustaré mi respuesta. – igorw
del manual php:' Esta función puede devolver un valor booleano FALSO, pero también puede devolver un valor no booleano que evalúa como FALSO, como 0 o "" .', por lo que tiendo a usar el falso en lugar de 0 :) – panosru