para headers framework app php rest slim

headers - slim php app



ParĂ¡metros Slim PHP y GET (7)

Estoy jugando con Slim PHP como marco para una API RESTful, y hasta ahora es genial. Es muy fácil trabajar con él, pero tengo una pregunta a la que no puedo encontrar la respuesta. ¿Cómo puedo obtener los parámetros GET de la URL en Slim PHP?

Por ejemplo, si quisiera usar lo siguiente:

http://api.example.com/dataset/schools?zip=99999&radius=5

¿Un caso de los lunes? ¿Lo estoy pensando demasiado? ¡Gracias por adelantado!


Arreglé mi API para recibir un cuerpo JSON o un parámetro url como este.

$data = json_decode($request->getBody()) ?: $request->params();

Esto podría no ser adecuado para todos, pero funcionó para mí.


En Slim 3.0, lo siguiente también funciona:

routes.php

require_once ''user.php''; $app->get(''/user/create'', ''/UserController:create'');

usuario.php

class UserController { public function create($request, $response, array $args) { $username = $request->getParam(''username'')); $password = $request->getParam(''password'')); // ... } }


No estoy seguro acerca de Slim PHP, pero si quiere acceder a los parámetros desde una URL, debe usar:

$_SERVER[''QUERY_STRING'']

Encontrarás un montón de publicaciones en blogs en Google para resolver esto. También puede usar la función PHP parse_url .


Para Slim 3 , necesita utilizar el método getQueryParams() en el objeto de Request de PSR 7.

Citando la documentación :

Puede obtener los parámetros de consulta como una matriz asociativa en el objeto Request utilizando getQueryParams ().

También puede obtener un único valor de parámetro de consulta, con valor predeterminado opcional si falta el parámetro, usando getQueryParam ($ key, $ default = null).


Puede hacerlo fácilmente en el marco Slim, puede usar:

$paramValue = $app->request()->params(''paramName'');

$ app aquí es una instancia de Slim.

O si quieres ser más específico

// parámetro GET

$paramValue = $app->request()->get(''paramName'');

// parámetro POST

$paramValue = $app->request()->post(''paramName'');

Lo usarías así en una ruta específica

$app->get(''/route'', function () use ($app) { $paramValue = $app->request()->params(''paramName''); });

Puede leer la documentación en el objeto de solicitud http://docs.slimframework.com/request/variables/


Use $id = $request->getAttribute(''id''); //where id is the name of the param $id = $request->getAttribute(''id''); //where id is the name of the param


SI QUIERES OBTENER PARAMOS CON NOMBRE DE PARÁMETRO

$value = $app->request->params(''key'');

El método params () primero buscará las variables PUT, luego las variables POST, luego las variables GET. Si no se encuentran variables, se devuelve null. Si solo desea buscar un tipo específico de variable, puede utilizar estos métodos:

// --- GET variable

$paramValue = $app->request->get(''paramName'');

// --- POST variable

$paramValue = $app->request->post(''paramName'');

// --- variable PUT

$paramValue = $app->request->put(''paramName'');

SI DESEA OBTENER TODOS LOS PARÁMETROS SIN NOMBRE DE PARÁMETRO ESPECIFICADO, PUEDE OBTENER TODOS ELLOS EN ARCHIVO EN FORMATO DE LLAVE => VALOR

$data = json_decode( $app->request->getBody() ) ?: $app->request->params();

$ data será una matriz que contiene todos los campos de la solicitud como se muestra a continuación

$data = array( ''key'' => ''value'', ''key'' => ''value'', //... );

Espero que te ayude!