Trabajo Práctico para el Bootcamp de Java, iniciativa que la Agencia de Aprendizaje a lo largo de la vida organiza junto a IT Patagonia y la academia educativa Codeki.
Consigna: API REST CRUD sobre agencia de vuelos. Consulta a API externa (Dolar-API) y agregados algunos test unitarios, Swagger, relación de tablas y manejo de excepciones. |
![]() |
- Título y descripción del proyecto
- Índice
- Tecnologías utilizadas
- Instalación
- Funcionalidad de la App
- Desarrollado por...
- Contacto
- Agradecimiento
Si deseas correr la aplicación en un entorno local debes tener en cuenta lo siguiente:
-
Clona el repositorio utilizando GIT o descargando el archivo ZIP:
git clone https://github.com/joana-coll/Codeki-TravelAgency-API.git
-
Modificá los datos de username y password en el
application-properties
para poder conectarte a MySQL. -
Importa el
SCRIPT SQL
que encontras en la carpeta raíz del proyecto. -
Crea la base de datos
Travelagency
y ejecuta la app. -
Para probar los endpoint es recomendable utilizar Postman
La aplicación es un CRUD de vuelos. Cuenta con los siguientes endpoints:
- Flight
- /travelagency/v1/flight/create
- /travelagency/v1/flight
- /travelagency/v1/flight/{flightId}
- /travelagency/v1/flight/update/{flightId}
- /travelagency/v1/flight/delete/{flightId}
- /travelagency/v1/flight/offers
- /travelagency/v1/flight/origin
- /travelagency/v1/flight/originAndDestiny
- Company
- /travelagency/v1/company/create
- /travelagency/v1/company
- /travelagency/v1/company/{companyId}
- /travelagency/v1/company/update/{companyId}
- /travelagency/v1/company/delete/{companyId}
/travelagency/v1/flight/create
agrega un vuelo mediante RequestBody y la compañia áerea mediante RequestParam
{
"id": 5,
"origin": "EZE",
"destiny": "COR",
"departureTime": "Fri 28 May 8:30h",
"arrivingTime": "Fri 28 May 11:30h",
"convertedPrice": 720432,
"frequency": "Diary",
"company": {
"id": 1,
"name": "Flybondi",
"page": "flybondi.com",
"banner": "Banner Flybondi"
}
}
/travelagency/v1/flight
muestra todos los vuelos
[
{
"id": 4,
"origin": "EZE",
"destiny": "BRC",
"departureTime": "Sun 18 Ago 05:25",
"arrivingTime": "Sun 18 Ago 07:50",
"convertedPrice": 15607823,
"frequency": "Diary",
"company": {
"id": 3,
"name": "Aerolineas Argentinas",
"page": "aerolineasargentinas.com.ar",
"banner": "Banner Aerolineas Argentinas"
}
},
{
"id": 5,
"origin": "EZE",
"destiny": "COR",
"departureTime": "Fri 28 May 8:30h",
"arrivingTime": "Fri 28 May 11:30h",
"convertedPrice": 720432,
"frequency": "Diary",
"company": {
"id": 1,
"name": "Flybondi",
"page": "flybondi.com",
"banner": "Banner Flybondi"
}
}
]
/travelagency/v1/flight/{flightId}
muestra un determinado vuelo por id mediante un PathVarible
{
"id": 1,
"origin": "AEP",
"destiny": "COR",
"departureTime": "Sun 18 Ago 20:54",
"arrivingTime": "Sun 18 Ago 22:21",
"convertedPrice": 452991,
"frequency": "Diary",
"company": {
"id": 2,
"name": "JetSMART",
"page": "jetsmart.com",
"banner": "Banner JetSMART"
}
}
/travelagency/v1/flight/update/{flightId}
edita un vuelo mediante un RequestBody enviando el id por PathVariable y la compañia aerea por RequestParam
{
"id": 1,
"origin": "TUC",
"destiny": "SJU",
"departureTime": "Sun 12 May 11:30h",
"arrivingTime": "Sun 12 May 11:30h",
"convertedPrice": 452991,
"frequency": "Diaria",
"company": {
"id": 3,
"name": "Aerolineas Argentinas",
"page": "aerolineasargentinas.com.ar",
"banner": "Banner Aerolineas Argentinas"
}
}
/travelagency/v1/flight/delete/{flightId}
borra un determinada vuelo por id mediante un PathVariable
Flight deleted!
/travelagency/v1/flight/offers
muestra ofertas de vuelo que hay disponibles
/travelagency/v1/flight/origin
muestra los vuelos por su origen
/travelagency/v1/flight/originAndDestiny
muestra los vuelos por su origen y destino
/travelagency/v1/company/create
agrega una compañia aérea mediante RequestBody
{
"id": 4,
"name": "Air France",
"page": "www.airfrance.com.ar",
"banner": "Banner Air France"
}
/travelagency/v1/company
muestra todas las compañías aéreas
[
{
"id": 1,
"name": "Flybondi",
"page": "flybondi.com",
"banner": "Banner Flybondi"
},
{
"id": 2,
"name": "JetSMART",
"page": "jetsmart.com",
"banner": "Banner JetSMART"
},
{
"id": 3,
"name": "Aerolineas Argentinas",
"page": "aerolineasargentinas.com.ar",
"banner": "Banner Aerolineas Argentinas"
},
{
"id": 4,
"name": "Air France",
"page": "www.airfrance.com.ar",
"banner": "Banner Air France"
}
]
/travelagency/v1/company/{companyId}
muestra una determinada compañía aérea por id mediante un PathVarible
{
"id": 3,
"name": "Aerolineas Argentinas",
"page": "aerolineasargentinas.com.ar",
"banner": "Banner Aerolineas Argentinas"
}
/travelagency/v1/company/update/{companyId}
edita una compañía aérea mediante un RequestBody enviando el id por PathVariable
{
"id": 3,
"name": "Aerolineas Argentinas",
"page": "www.aerolineas.com.ar",
"banner": "BANNER EDITED"
}
/travelagency/v1/company/delete/{companyId}
borra una determinada compañía aérea por id mediante un PathVariable
Company deleted!
- Joana Coll - joanacoll
Si deseas contactarte conmigo:
Gracias por leer hasta aquí, espero que el proyecto te sea útil. No tiene Licencia pero podes usarlo como gustes mientras sigas fomentando el código libre y ayudando a otros pares.
¡Que tengas un lindo día!
Nana ✨