Skip to content

Latest commit

 

History

History
256 lines (140 loc) · 8.05 KB

README_SPANISH.md

File metadata and controls

256 lines (140 loc) · 8.05 KB

API REST EN SLIM PHP

Ejemplo de API RESTful con micro framework Slim PHP.

Esta simple API permite administrar recursos tales como: usuarios, tareas y notas.

Software License Build Status Quality Gate Status Code Quality Test Coverage Packagist Version

alt text

También puedes leerlo en inglés README IN ENGLISH.

Principales tecnologías utilizadas: PHP 8, Slim 3, MySQL, Redis, dotenv, PHPUnit and JSON Web Tokens.

Además, utilizo otras herramientas adicionales como: Docker & Docker Compose, Travis CI, Swagger, Code Climate, Scrutinizer, Sonar Cloud, PHPStan, PHP Insights, Heroku and CORS.

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.

⚙️ INSTALACIÓN RÁPIDA:

Requerimientos:

  • Git.
  • Composer.
  • PHP >= 8.0
  • MySQL/MariaDB.
  • Redis (Opcional).
  • O simplemente Docker.

Usando Composer:

Puede crear un nuevo proyecto ejecutando los siguientes comandos:

$ composer create-project maurobonfietti/rest-api-slim-php [my-api-name]
$ cd [my-api-name]
$ composer restart-db
$ composer test
$ composer start

How to install

Usando Git:

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 restart-db
$ composer test
$ composer start

Usando Docker:

Puedes probar este proyecto usando docker y docker-compose.

Version Requerida Docker:

  • Engine: 18.03+
  • Compose: 1.21+

Comandos:

# Start the API (this is my alias for: docker-compose up -d --build).
$ make up

# To create the database and import test data from scratch.
$ make db

# Checkout the API.
$ curl http://localhost:8081

# Stop and remove containers (it's like: docker-compose down).
$ make down

🔧 INSTALACIÓN PASO A PASO:

Si tuviste alguna duda o problema, puedes consultar esta guía paso a paso.

🎦 TUTORIALS:

Mini serie de videos acerca de Slim PHP.

📹 VIDEO #1

Cómo instalar y configurar esta API.

🎥 VIDEO #2

Ejemplo de cómo utilizar esta API con JWT para autenticación.

📹 VIDEO #3

Cómo usar Redis en esta API con Slim PHP.

🎥 VIDEO #4

Cómo hacer el despliegue de una API con Slim PHP usando Heroku.

📦 DEPENDENCIAS:

LISTA DE DEPENDENCIAS REQUERIDAS:

  • 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 a getenv(), $_ENV y $_SERVER automágicamente.
  • predis/predis: Cliente Redis flexible y con funciones completas para PHP y HHVM.
  • firebase/php-jwt: Una biblioteca simple para codificar y decodificar JSON Web Tokens (JWT) en PHP.

LISTA DE DEPENDENCIAS PARA DESARROLLO:

  • phpunit/phpunit: Framework para hacer Unit Testing en PHP.
  • phpstan/phpstan: PHPStan, herramienta de análisis estático para PHP.
  • pestphp/pest: Pest es un elegante PHP Testing Framework con un enfoque en la simplicidad.
  • nunomaduro/phpinsights: Comprobaciones instantáneas de calidad PHP desde su consola.
  • vimeo/psalm: Una herramienta de análisis estático para encontrar errores en aplicaciones PHP.
  • rector/rector: Actualizaciones y refactorización instantánea de cualquier código PHP 5.3+.

🚥 TESTING:

Ejecutar los tests PHPUnit con composer test.

$ composer test
> phpunit
PHPUnit 9.5.10 by Sebastian Bergmann and contributors.

........................................................          56 / 56 (100%)

Time: 00:00.628, Memory: 18.00 MB

OK (56 tests, 343 assertions)

CAPTURA DE PANTALLA:

Screen Shot API using Browser


Screen Shot API using Postman


📚 DOCUMENTACIÓN:

ENDPOINTS:

INFO:

  • Help: GET /

  • Status: GET /status

USERS:

  • Login User: POST /login

  • Create User: POST /api/v1/users

  • Update User: PUT /api/v1/users/{id}

  • Delete User: DELETE /api/v1/users/{id}

TASKS:

  • Get All Tasks: GET /api/v1/tasks

  • Get One Task: GET /api/v1/tasks/{id}

  • Create Task: POST /api/v1/tasks

  • Update Task: PUT /api/v1/tasks/{id}

  • Delete Task: DELETE /api/v1/tasks/{id}

NOTES:

  • Get All Notes: GET /api/v1/notes

  • Get One Note: GET /api/v1/notes/{id}

  • Create Note: POST /api/v1/notes

  • Update Note: PUT /api/v1/notes/{id}

  • Delete Note: DELETE /api/v1/notes/{id}

Ver documentación de la API con la lista completa de endpoints.

IMPORTAR EN POSTMAN:

Toda la información de la API, preparada para descargar y utilizar como colección de postman: Importar Colección.

Run in Postman

OPEN API:

Además se puede ver la especificación OpenAPI, utilizando Swagger UI.

🚀 DESPIEGLE:

Puedes hacer deploy de esta API usando Heroku Free.

Deploy

❤️ ¿TE GUSTA EL PROYECTO?

Puedes apoyar este proyecto invitándome un café ☕ 😋 o dando una estrella a este repo ⭐ 😎.

Buy Me a Coffee at ko-fi.com

📄 LICENCIA

Licencia MIT. Consultar Archivo de licencia para obtener más información.