Esta é unha aplicación Laravel mínima para xestionar un CRUD de libros usando unha API REST. Permite almacenar e xestionar libros con titulo, autor e editorial. Toda a aplicación está conteinerizada con Docker, incluíndo MariaDB e phpMyAdmin para a administración da base de datos.
- Docker & Docker Compose
- Make (opcional, pero recomendado)
.
├── Dockerfile
├── docker-compose.yml
├── Makefile
├── entrypoint.sh
├── src/ # Código de Laravel
│ ├── app/
│ ├── config/
│ ├── routes/
│ │ └── api.php
│ └── ...
├── .env # Variables de entorno para a base de datos
- A aplicación Laravel corre no contedor
laravel_app. - MariaDB corre no contedor
mariadb. - phpMyAdmin corre no contedor
phpmyadmin(porta 8081).
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:YOUR_APP_KEY
APP_DEBUG=true
APP_URL=http://localhost:8080
DB_CONNECTION=mysql
DB_HOST=mariadb
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=laravel- Levantar contedores
make up- Parar contedores
make down- Entrar no contedor da app
make bash- Instalar dependencias de Composer
make composer-install- Executar migracións
make migrate- Limpar caches de Laravel
make cache-clear- Crear modelo
make model NAME=Libro- Crear controlador
make controller NAME=LibroController- Listar libros
curl -i http://localhost:8080/api/libros- Crear un libro
curl -i -X POST http://localhost:8080/api/libros \
-H "Content-Type: application/json" \
-d '{
"titulo": "O Señor dos Aneis",
"autor": "J.R.R. Tolkien",
"editorial": "Minotauro"
}'- Mostrar un libro
curl -i http://localhost:8080/api/libros/1- Actualizar un libro
curl -i -X PUT http://localhost:8080/api/libros/1 \
-H "Content-Type: application/json" \
-d '{
"titulo": "O Hobbit"
}'- Eliminar un libro
curl -i -X DELETE http://localhost:8080/api/libros/1A versión 2 da aplicación engade Discos, con CRUD completo (crear, listar, actualizar, eliminar).
| Acción | Método | Endpoint |
|---|---|---|
| Listar todos | GET | /api/discos |
| Crear | POST | /api/discos |
| Ver un disco | GET | /api/discos/{id} |
| Actualizar | PUT | /api/discos/{id} |
| Eliminar | DELETE | /api/discos/{id} |
curl -i http://localhost:8080/api/discoscurl -i -X POST http://localhost:8080/api/discos \
-H "Content-Type: application/json" \
-d '{
"titulo": "Abbey Road",
"artista": "The Beatles",
"genero": "Rock",
"ano": 1969
}'curl -i http://localhost:8080/api/discos/1curl -i -X PUT http://localhost:8080/api/discos/1 \
-H "Content-Type: application/json" \
-d '{"titulo":"Let It Be"}'curl -i -X DELETE http://localhost:8080/api/discos/1- phpMyAdmin dispoñible en http://localhost:8081
- Usuario:
laravel - Contraseña:
laravel - Base de datos:
laravel
- O Controller de libros sempre devolve JSON, sen Blade nin vistas.
- O proxecto é totalmente conteinerizado para facilitar o desenvolvemento e probas locais.
- Para limpar completamente a cache ou configuración de Laravel, usar
make cache-clear.