Ejemplo de API REST con micro framework Slim PHP.
Esta simple API RESTful hecha en Slim version 3, permite operaciones CRUD para administrar recursos como por ejemplo: Usuarios, Tareas y Notas.
También puedes leerlo en inglés README IN ENGLISH.
Más información sobre este proyecto en mi publicación: Cómo crear una API REST con Slim PHP.
Implementé esta API en este proyecto. Es una aplicación web tipo lista de tareas, desarrollada en Angular.
- Git.
- Composer.
- PHP.
- MySQL/MariaDB.
En su terminal favorita ejecute estos comandos:
$ git clone https://github.com/maurobonfietti/rest-api-slim-php.git && cd rest-api-slim-php
$ cp .env.example .env
$ composer install
$ composer database
$ composer start
$ git clone https://github.com/maurobonfietti/rest-api-slim-php.git
$ cd rest-api-slim-php
$ cp .env.example .env
$ composer install
Desde la línea de comandos ejecutar:
$ mysql -e 'CREATE DATABASE rest_api_slim_php;'
La base de datos se puede actualizar manualmente utilizando el siguiente archivo: database.sql.
También se puede ejecutar desde la línea de comandos:
$ mysql rest_api_slim_php < database/database.sql
Editar y completar archivo de configuración: .env
. Por ejemplo:
DB_HOSTNAME = '127.0.0.1'
DB_DATABASE = 'rest_api_slim_php'
DB_USERNAME = 'root'
DB_PASSWORD = ''
Por ejemplo:
DISPLAY_ERROR_DETAILS=true
APP_DOMAIN='https://www.yourdomain.com'
USE_REDIS_CACHE=false
REDIS_URL=''
SECRET_KEY='YourSuperSecret-KeY'
Se puede iniciar el servidor web interno de PHP ejecutando:
$ composer start
Si todo fue bien 😎, se puede acceder localmente al proyecto ingresando a: Ayuda, Estado y Notas.
El comando composer start
sería el equivalente a ejecutar:
$ php -S 0.0.0.0:8080 -t public public/index.php
Puedes probar este proyecto usando docker y docker-compose.
- Engine: 18.03+
- Compose: 1.21+
Work In Progress...
Execute for example:
# To create the database and import test data from scratch.
$ make db
# Start the API (this is my alias for: docker-compose up -d --build).
$ make up
# Checkout the API.
$ curl http://localhost:8053
# Stop and remove containers (or docker-compose down).
$ make down
- slim/slim: Micro framework PHP que ayuda a escribir rápidamente aplicaciones y APIs simples pero potentes.
- respect/validation: El motor de validación más impresionante jamás creado para PHP.
- palanik/corsslim: Middleware de intercambio de recursos de origen cruzado (CORS) para PHP Slim.
- vlucas/phpdotenv: Carga las variables de entorno de
.env
agetenv()
,$_ENV
y$_SERVER
automágicamente. - predis/predis: Extensión de PHP para Redis.
- firebase/php-jwt: Una biblioteca simple para codificar y decodificar JSON Web Tokens (JWT) en PHP.
- phpunit/phpunit: Framework para hacer Unit Testing en PHP.
- phpstan/phpstan: PHPStan, herramienta de análisis estático para PHP.
Acceder a la raíz del proyecto y ejecutar los tests PHPUnit con composer test
.
PHPUnit 8.2.3 by Sebastian Bergmann and contributors.
........................................................... 59 / 59 (100%)
Time: 243 ms, Memory: 14.00 MB
OK (59 tests, 320 assertions)
-
Help:
GET /
-
Status:
GET /status
-
Login User:
POST /login
-
Create User:
POST /api/v1/users
-
Update User:
PUT /api/v1/users/{id}
-
Delete User:
DELETE /api/v1/users/{id}
-
Get All Tasks:
GET /api/v1/tasks
-
Get One Task:
GET /api/v1/tasks/{id}
-
Search Tasks:
GET /api/v1/tasks/search/{string}
-
Create Task:
POST /api/v1/tasks
-
Update Task:
PUT /api/v1/tasks/{id}
-
Delete Task:
DELETE /api/v1/tasks/{id}
Ver documentación de la API con la lista completa de endpoints.
Toda la información de la API, preparada para descargar y utilizar como colección de postman: Importar Colección.
Para más información sobre el modo de uso de la API REST, ver la siguiente documentación disponible en Postman Documenter.
Ver demo online hosteado en Heroku.