Este proyecto es una API REST simple construida usando Slim Framework y MySQL. Proporciona operaciones CRUD básicas para la gestión de productos.
-
Clona el repositorio:
git clone https://github.com/yourusername/sample-rest-api.git
-
Navega al directorio del proyecto:
cd sample-rest-api
-
Instala las dependencias usando Composer:
composer install
-
Crea una base de datos MySQL e importa el archivo SQL proporcionado:
CREATE DATABASE sample_api; USE sample_api; SOURCE path/to/your/sql/sample_api.sql
NOTE
El proyecto cuenta con un archivo
docker-compose.yml
que despliega toda la infraestructura necesaria para ejecutar la API. Si prefieres usar Docker, puedes omitir los pasos de instalación manual y simplemente ejecutar:docker-compose up -dEsto levantará un grupo de contenedores con PHP, MySQL y Nginx, y podrás acceder a la API en
http://localhost
.
-
Actualiza la configuración de la base de datos en
config.php
:$config = [ 'host' => 'localhost', 'username' => 'example', 'password' => 'example', 'database' => 'sample_api'
]; ```
NOTE
Si estás usando Docker, el host debe ser
db
en lugar delocalhost
, que es el nombre del contenedor en el docker-compose.
-
Inicia el servidor PHP integrado si no estás ejecutando el proyecto en XAMPP o Docker:
php -S localhost:8000 -t public
-
Usa un cliente API como Postman o cURL para interactuar con la API.
NOTE
Si estás utilizando Docker o XAMPP, la API estará disponible en
http://localhost
y no necesitarás iniciar el servidor PHP manualmente.
Si prefieres utilizar otro servidor como XAMPP, puedes eliminar la configuración del servidor PHP integrado del archivo composer.json
. Simplemente elimina o comenta la sección correspondiente.
La API tiene los siguientes endpoints:
-
GET / o GET /docs: Obtener la documentación de la API.
-
GET /products: Obtener todos los productos.
-
GET /products/{id}: Obtener un producto por ID.
-
POST /products: Crear un nuevo producto.
-
PUT /products/{id}: Actualizar un producto por ID.
-
DELETE /products/{id}: Eliminar un producto por ID.
-
GET /products
curl -X GET http://localhost:8000/sample-rest-api/product
-
POST /products
curl -X POST http://localhost:8000/sample-rest-api/product \ -H "Content-Type: application/json" \ -d '{"name": "Nuevo Producto", "price": 99.99}'
-
PUT /products/{id}
curl -X PUT http://localhost:8000/sample-rest-api/product/1 \ -H "Content-Type: application/json" \ -d '{"name": "Producto Actualizado", "price": 79.99}'
-
DELETE /products/{id}
curl -X DELETE http://localhost:8000/sample-rest-api/product/1
Este proyecto está licenciado bajo la Licencia CC BY-NC-ND 4.0. Esto significa que puedes compartir el proyecto siempre que cites al autor, no lo uses para fines comerciales y no realices obras derivadas.