Skip to content

API REST CRUD que consume API externa realizado con Java, Spring Boot, JPA Hibernate, Maven, MySQL y RestTemplate para el Bootcamp Java 2024 - Iniciativa que la Agencia de Aprendizaje a lo largo de la vida organiza junto a IT Patagonia y la academia educativa Codeki.

Notifications You must be signed in to change notification settings

JoanaColl/Codeki-TravelAgency-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛄 Travel Agency

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.

📌 Índice

  1. Título y descripción del proyecto
  2. Índice
  3. Tecnologías utilizadas
  4. Instalación
  5. Funcionalidad de la App
  6. Desarrollado por...
  7. Contacto
  8. Agradecimiento

✅ Tecnologías utilizadas

⬆️

🔧 Instalación

Si deseas correr la aplicación en un entorno local debes tener en cuenta lo siguiente:

  1. Clona el repositorio utilizando GIT o descargando el archivo ZIP:

    git clone https://github.com/joana-coll/Codeki-TravelAgency-API.git

  2. Modificá los datos de username y password en el application-properties para poder conectarte a MySQL.

  3. Importa el SCRIPT SQL que encontras en la carpeta raíz del proyecto.

  4. Crea la base de datos Travelagency y ejecuta la app.

  5. Para probar los endpoint es recomendable utilizar Postman

⬆️

⚙️ Funcionalidad de la App

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}

⬆️

Flight

createFlight

/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"
    }
}

⬆️

findAllFlights

/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"
        }
    }
]

⬆️

findFlightById

/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"
      }
    }

⬆️

updateFlight

/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"
  }
}

⬆️

deleteFlight

/travelagency/v1/flight/delete/{flightId} borra un determinada vuelo por id mediante un PathVariable

Flight deleted!

(Ir arriba)

getFlightOffers

/travelagency/v1/flight/offers muestra ofertas de vuelo que hay disponibles

⬆️

findFlightByOrigin

/travelagency/v1/flight/origin muestra los vuelos por su origen

⬆️

findFlightByOriginAndDestiny

/travelagency/v1/flight/originAndDestiny muestra los vuelos por su origen y destino

⬆️

Company

createCompany

/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"
}

⬆️

findAllCompanies

/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"
 }
]

⬆️

findCompanyById

/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"
}

⬆️

updateCompany

/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"
}

⬆️

deleteCompanyById

/travelagency/v1/company/delete/{companyId} borra una determinada compañía aérea por id mediante un PathVariable

Company deleted!

⬆️

💁 Desarrollado por...

⬆️

📩 Contacto

Si deseas contactarte conmigo: Gmail Linkedin

⬆️

❤️ Agradecimiento

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 ✨

⬆️

About

API REST CRUD que consume API externa realizado con Java, Spring Boot, JPA Hibernate, Maven, MySQL y RestTemplate para el Bootcamp Java 2024 - Iniciativa que la Agencia de Aprendizaje a lo largo de la vida organiza junto a IT Patagonia y la academia educativa Codeki.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages