-Java 21 -Spring Boot 4 -Maven -MongoDB -Docker + Docker Compose
Clonar proyecto
git clone https://github.com/Smejia11/franchise-api.gitEntra a la carpeta del proyecto:
cd franchise-apiIncluir archivo .env enviado por correo con la cadena de conexiĂłn a MongoDB Atlas. Como se ve en la imagen

Ejecutar docker compose
docker compose up --buildURL-BASE
localhost:8080/v1POST
/franchisesRequest body
{
"name": "Franquicia 1"
}curl --location 'localhost:8080/v1/franchises' \
--header 'Content-Type: application/json' \
--data '{
"name": "Franquicia 1"
}'
PATCH
/franchises/{franchiseName}/update/nameRequest body
{
"name": "Franquicia 2"
}curl --location --request PATCH 'localhost:8080/v1/franchises/Franquicia 1/update/name' \
--header 'Content-Type: application/json' \
--data '{
"name": "Franquicia 2"
}'
POST
/franchises/{franchiseName}/branches{
"name": "Sucursal Norte"
}curl --location 'localhost:8080/v1/franchises/Franquicia 1/branches' \
--header 'Content-Type: application/json' \
--data '{
"name": "Sucursal Norte"
}'
PATCH
/franchises/{franchiseName}/branches/{branchName}/update/name{
"name": "Sucursal Sur"
}curl --location --request PATCH 'localhost:8080/v1/franchises/Franquicia 2/branches/Sucursal buena/update/name' \
--header 'Content-Type: application/json' \
--data '{
"name": "Sucursal Sur"
}'
POST
/franchises/{franchiseName}/branches/{branchName}/products{
"name": "Hamburguesa",
"stock": 200
}
curl --location 'localhost:8080/v1/franchises/Franquicia 2/branches/Sucursal Sur/products' \
--header 'Content-Type: application/json' \
--data '{
"name": "Hamburguesa",
"stock": 200
}'
PATCH
/franchises/{franchiseName}/branches/{branchName}/products/{productName}/update/name{
"name":"Perro caliente"
}
curl --location --request PATCH 'localhost:8080/v1/franchises/Franquicia 2/branches/Sucursal Sur/products/Hamburguesa/update/name' \
--header 'Content-Type: application/json' \
--data '{
"name":"Perro caliente"
}'
DELETE
/franchises/{franchiseName}/branches/{branchName}/products/{productName}curl --location --request DELETE 'localhost:8080/v1/franchises/Franquicia 2/branches/Sucursal Sur/products/Perro caliente'
PATCH
/franchises/{franchiseName}/branches/{branchName}/products/{productName}/stock/{stock}curl --location --request PATCH 'localhost:8080/v1/franchises/Franquicia 2/branches/Sucursal Norte/products/Hamburguesa/stock/3'
GET
/franchises/{franchiseName}/branches/products/topcurl --location 'localhost:8080/v1/franchises/Franquicia 2/branches/products/top'
201 Created204 No Content200 OK404 Not Found
200 OK
| Field | Type | Description |
|---|---|---|
| branch | string | Nombre de la sucursal a la que pertenece el producto |
| product | string | Nombre del producto con mayor stock |
| stock | number | Cantidad de stock disponible del producto |
[
{
"branch": "Sucursal Norte",
"product": "Perros",
"stock": 800
}
]
















