API REST para gestionar libros.
La API se ha implementado con una pequeña aplicación en Go.
Primero necesitas levantar la base de datos:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 -d mysql:5.6
Y ejecutar las queries del archivo schema.sql
Para lanzar la aplicación:
make run
y para lanzar los tests
make test
GET /api/
-> HelloPOST /api/books
-> Add BookGET /api/books
-> Get All BooksGET /api/books/:id
-> Get One BookDELETE /api/books/:id
-> Delete BookPUT /api/books/:id
-> Update Book
-
Ejecutar la aplicación desde un contenedor de Docker.
- Crear Dockerfile
- Levantar Aplicación y BD con docker-compose.
-
Crear un pipeline de CI (Continuos Integration) en Github Actions:
- Se ejecutará cada vez que se abra una nueva Pull Request.
- Ejecutar los siguientes pasos por este orden:
make lint
make test
make build
docker-compose up -d
curl --fail http://localhost:8080/api/
-
Crear un pipeline de CD (Continuos Deployment) en Github Actions:
- Se ejecutará cada vez que se haga merge de una Pull Request.
- Ejecutar los siguientes pasos por este orden:
- Compilar imagen de Docker y enviarla al container registry de Github
- Usar docker-compose o alguna otra forma para conectarse al servidor y reemplazar la imagen actual por la que se acaba de subir.
-
Testing pushing into container registry
still working??