Coneixements previs
- Eines / Composer. El gestor de dependències de composer et permet instalar
predis
. - Eines / APT.
apt
et permet instalar el paquetdocker
en la teva distribució Ubuntu. - Serveis / Redis. ...
Exemple: Gestió d'usuaris
<?php
use Predis\Client;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
use Slim\Interfaces\RouteCollectorProxyInterface as Group;
require __DIR__ . '/vendor/autoload.php';
$app = AppFactory::create();
$app->group('/users', function (Group $group) {
$group->get('/{id}', function (Request $request, Response $response, $args) {
$id = $args['id']; // TODO cast to int
$client = new Client();
$user = $client->get($id);
if (!isset($user)) {
$response = $response->withStatus(404); // Not found
// TODO return json error
} else {
$payload = unserialize($user);
$response->getBody()->write($payload);
$response = $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
return $response;
});
$group->get(
'/add/{name}',
function (Request $request, Response $response, $args) {
$name = $args['name'];
$id = 1;
$user = new User($id, $name);
$user = json_encode($user);
$client = new Client();
$client->set($id, $user);
$response->getBody()->write($user);
$response = $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
return $response;
}
);
});
$app->run();
class User
{
public int $id;
public string $name;
public function __construct(int $id, string $name)
{
$this->id = $id;
$this->name = $name;
}
}
Instala els recursos necessaris:
sudo docker run --name m7-redis -d redis
composer require predis/predis
Interactua amb l'aplicació:
php -S http://localhost:3000
curl -v localhost:3000/users/3
curl localhost:3000/users/add/joana
curl localhost:3000/users/1
I utiliza redis-cli
per actuar directament amb Redis:
sudo docker exec -it m7-redis sh
redis-cli
get 1
JSON
JSON (JavaScript Object Notation) és un format de text sencill d’intercanvi d'objectes. Per a les persones i les màquines és fàcil de llegir i escriure. És basa en un subconjunt de l'estàndard de llenguatge de programació JavaScript ECMA-262.
JSON s'utilitza habitualment per:
-
Transmetre dades en aplicacions web des del servidor al client, de manera que es poden mostrar en una pàgina web o viceversa. Tots els frameworks javascript com Node.js, Vue.js, AngularJS, Ember.js, o React necessiten una
api
en el servidor web que els permeti actuar intercanviant JSON (no volen pàgines HTML). -
Transmetre dades entre un client (pot ser un navegador o un servidor) i un servidor que ofereix serveis ("Web Service). Per exemple, si el teu servidor vol guardar objectes en Amazon S3, o vols utilitzar les APIs de Google per utilitzar els seus serveis de búsqueda, google maps, etc., hauras d'utilitzar HTTP i JSON.