Browse Source
- 添加Amadeus Java SDK依赖 - 实现酒店查询功能 - 添加.gitignore文件忽略IDE和构建文件 - 添加README文档说明项目功能 - 创建基础测试类master
commit
2677fe9d92
10 changed files with 750 additions and 0 deletions
@ -0,0 +1,39 @@ |
|||||||
|
target/ |
||||||
|
!.mvn/wrapper/maven-wrapper.jar |
||||||
|
!**/src/main/**/target/ |
||||||
|
!**/src/test/**/target/ |
||||||
|
.kotlin |
||||||
|
|
||||||
|
### IntelliJ IDEA ### |
||||||
|
.idea/modules.xml |
||||||
|
.idea/jarRepositories.xml |
||||||
|
.idea/compiler.xml |
||||||
|
.idea/libraries/ |
||||||
|
*.iws |
||||||
|
*.iml |
||||||
|
*.ipr |
||||||
|
|
||||||
|
### Eclipse ### |
||||||
|
.apt_generated |
||||||
|
.classpath |
||||||
|
.factorypath |
||||||
|
.project |
||||||
|
.settings |
||||||
|
.springBeans |
||||||
|
.sts4-cache |
||||||
|
|
||||||
|
### NetBeans ### |
||||||
|
/nbproject/private/ |
||||||
|
/nbbuild/ |
||||||
|
/dist/ |
||||||
|
/nbdist/ |
||||||
|
/.nb-gradle/ |
||||||
|
build/ |
||||||
|
!**/src/main/**/build/ |
||||||
|
!**/src/test/**/build/ |
||||||
|
|
||||||
|
### VS Code ### |
||||||
|
.vscode/ |
||||||
|
|
||||||
|
### Mac OS ### |
||||||
|
.DS_Store |
||||||
@ -0,0 +1,10 @@ |
|||||||
|
# 默认忽略的文件 |
||||||
|
/shelf/ |
||||||
|
/workspace.xml |
||||||
|
# 已忽略包含查询文件的默认文件夹 |
||||||
|
/queries/ |
||||||
|
# Datasource local storage ignored files |
||||||
|
/dataSources/ |
||||||
|
/dataSources.local.xml |
||||||
|
# 基于编辑器的 HTTP 客户端请求 |
||||||
|
/httpRequests/ |
||||||
@ -0,0 +1,7 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<project version="4"> |
||||||
|
<component name="Encoding"> |
||||||
|
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" /> |
||||||
|
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" /> |
||||||
|
</component> |
||||||
|
</project> |
||||||
@ -0,0 +1,14 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<project version="4"> |
||||||
|
<component name="ExternalStorageConfigurationManager" enabled="true" /> |
||||||
|
<component name="MavenProjectsManager"> |
||||||
|
<option name="originalFiles"> |
||||||
|
<list> |
||||||
|
<option value="$PROJECT_DIR$/pom.xml" /> |
||||||
|
</list> |
||||||
|
</option> |
||||||
|
</component> |
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK"> |
||||||
|
<output url="file://$PROJECT_DIR$/out" /> |
||||||
|
</component> |
||||||
|
</project> |
||||||
@ -0,0 +1,262 @@ |
|||||||
|
// Flight Inspiration Search |
||||||
|
FlightDestination[] flightDestinations = amadeus.shopping.flightDestinations.get(Params |
||||||
|
.with("origin", "MAD")); |
||||||
|
|
||||||
|
// Flight Cheapest Date Search |
||||||
|
FlightDate[] flightDates = amadeus.shopping.flightDates.get(Params |
||||||
|
.with("origin", "MAD") |
||||||
|
.and("destination", "MUC")); |
||||||
|
|
||||||
|
// Flight Offers Search v2 GET |
||||||
|
FlightOfferSearch[] flightOffersSearches = amadeus.shopping.flightOffersSearch.get( |
||||||
|
Params.with("originLocationCode", "SYD") |
||||||
|
.and("destinationLocationCode", "BKK") |
||||||
|
.and("departureDate", "2023-11-01") |
||||||
|
.and("returnDate", "2023-11-08") |
||||||
|
.and("adults", 2) |
||||||
|
.and("max", 3)); |
||||||
|
|
||||||
|
// Flight Offers Search v2 POST |
||||||
|
// body can be a String version of your JSON or a JsonObject |
||||||
|
FlightOfferSearch[] flightOffersSearches = amadeus.shopping.flightOffersSearch.post(body); |
||||||
|
|
||||||
|
// Flight Order Management |
||||||
|
// The flightOrderID comes from the Flight Create Orders (in test environment it's temporary) |
||||||
|
// Retrieve a flight order |
||||||
|
FlightOrder order = amadeus.booking.flightOrder("eJzTd9f3NjIJdzUGAAp%2fAiY=").get(); |
||||||
|
// Cancel a flight order |
||||||
|
Response order = amadeus.booking.flightOrder("eJzTd9f3NjIJdzUGAAp%2fAiY=").delete(); |
||||||
|
|
||||||
|
// Flight Offers price |
||||||
|
FlightPrice[] flightPricing = amadeus.shopping.flightOffersSearch.pricing.post( |
||||||
|
body, |
||||||
|
Params.with("include", "other-services") |
||||||
|
.and("forceClass", "false")); |
||||||
|
|
||||||
|
// Flight Choice Prediction |
||||||
|
// Note that the example calls 2 APIs: Flight Offers Search & Flight Choice Prediction |
||||||
|
FlightOfferSearch[] flightOffers = amadeus.shopping.flightOffersSearch.get( |
||||||
|
Params.with("originLocationCode", "NYC") |
||||||
|
.and("destinationLocationCode", "MAD") |
||||||
|
.and("departureDate", "2024-04-01") |
||||||
|
.and("returnDate", "2024-04-08") |
||||||
|
.and("adults", 1)); |
||||||
|
|
||||||
|
// Using a JSonObject |
||||||
|
JsonObject result = flightOffers[0].getResponse().getResult(); |
||||||
|
FlightOfferSearch[] flightOffersPrediction = amadeus.shopping.flightOffers.prediction.post(result); |
||||||
|
|
||||||
|
// Using a String |
||||||
|
String body = flightOffers[0].getResponse().getBody(); |
||||||
|
FlightOfferSearch[] flightOffersPrediction = amadeus.shopping.flightOffers.prediction.post(body); |
||||||
|
|
||||||
|
// Flight Check-in Links |
||||||
|
CheckinLink[] checkinLinks = amadeus.referenceData.urls.checkinLinks.get(Params |
||||||
|
.with("airlineCode", "BA")); |
||||||
|
|
||||||
|
// Airline Code LookUp |
||||||
|
Airline[] airlines = amadeus.referenceData.airlines.get(Params |
||||||
|
.with("airlineCodes", "BA")); |
||||||
|
|
||||||
|
// Airport & City Search (autocomplete) |
||||||
|
// Find all the cities and airports starting by the keyword 'LON' |
||||||
|
Location[] locations = amadeus.referenceData.locations.get(Params |
||||||
|
.with("keyword", "LON") |
||||||
|
.and("subType", Locations.ANY)); |
||||||
|
// Get a specific city or airport based on its id |
||||||
|
Location location = amadeus.referenceData |
||||||
|
.location("ALHR").get(); |
||||||
|
|
||||||
|
// Airport Nearest Relevant (for London) |
||||||
|
Location[] locations = amadeus.referenceData.locations.airports.get(Params |
||||||
|
.with("latitude", 0.1278) |
||||||
|
.and("longitude", 51.5074)); |
||||||
|
|
||||||
|
// City Search |
||||||
|
City[] cities = amadeus.referenceData.locations.cities.get(Params |
||||||
|
.with("keyword","PARIS")); |
||||||
|
|
||||||
|
// Flight Most Booked Destinations |
||||||
|
AirTraffic[] airTraffics = amadeus.travel.analytics.airTraffic.booked.get(Params |
||||||
|
.with("originCityCode", "MAD") |
||||||
|
.and("period", "2017-08")); |
||||||
|
|
||||||
|
// Flight Most Traveled Destinations |
||||||
|
AirTraffic[] airTraffics = amadeus.travel.analytics.airTraffic.traveled.get(Params |
||||||
|
.with("originCityCode", "MAD") |
||||||
|
.and("period", "2017-01")); |
||||||
|
|
||||||
|
// Flight Busiest Traveling Period |
||||||
|
Period[] busiestPeriods = amadeus.travel.analytics.airTraffic.busiestPeriod.get(Params |
||||||
|
.with("cityCode", "MAD") |
||||||
|
.and("period", "2017") |
||||||
|
.and("direction", BusiestPeriod.ARRIVING)); |
||||||
|
|
||||||
|
// Points of Interest |
||||||
|
// What are the popular places in Barcelona (based a geo location and a radius) |
||||||
|
PointOfInterest[] pointsOfInterest = amadeus.referenceData.locations.pointsOfInterest.get(Params |
||||||
|
.with("latitude", "41.39715") |
||||||
|
.and("longitude", "2.160873")); |
||||||
|
|
||||||
|
// What are the popular places in Barcelona? (based on a square) |
||||||
|
PointOfInterest[] pointsOfInterest = amadeus.referenceData.locations.pointsOfInterest.bySquare.get(Params |
||||||
|
.with("north", "41.397158") |
||||||
|
.and("west", "2.160873") |
||||||
|
.and("south", "41.394582") |
||||||
|
.and("east", "2.177181")); |
||||||
|
|
||||||
|
// Returns a single Point of Interest from a given id |
||||||
|
PointOfInterest pointOfInterest = amadeus.referenceData.locations.pointOfInterest("9CB40CB5D0").get(); |
||||||
|
|
||||||
|
// Tours and Activities |
||||||
|
// What are the popular activities in Barcelona (based a geo location and a radius) |
||||||
|
Activity[] activities = amadeus.shopping.activities.get(Params |
||||||
|
.with("latitude", "41.39715") |
||||||
|
.and("longitude", "2.160873")); |
||||||
|
|
||||||
|
// What are the popular activities in Barcelona? (based on a square) |
||||||
|
Activity[] activities = amadeus.shopping.activities.bySquare.get(Params |
||||||
|
.with("north", "41.397158") |
||||||
|
.and("west", "2.160873") |
||||||
|
.and("south", "41.394582") |
||||||
|
.and("east", "2.177181")); |
||||||
|
|
||||||
|
// Returns a single activity from a given id |
||||||
|
Activity activity = amadeus.shopping.activity("4615").get(); |
||||||
|
|
||||||
|
// What's the likelihood flights from this airport will leave on time? |
||||||
|
Prediction AirportOnTime = amadeus.airport.predictions.onTime.get(Params |
||||||
|
.with("airportCode", "NCE") |
||||||
|
.and("date", "2024-04-01")); |
||||||
|
|
||||||
|
// What's the likelihood of a given flight to be delayed? |
||||||
|
Prediction[] flightDelay = amadeus.travel.predictions.flightDelay.get(Params |
||||||
|
.with("originLocationCode", "NCE") |
||||||
|
.and("destinationLocationCode", "IST") |
||||||
|
.and("departureDate", "2020-08-01") |
||||||
|
.and("departureTime", "18:20:00") |
||||||
|
.and("arrivalDate", "2020-08-01") |
||||||
|
.and("arrivalTime", "22:15:00") |
||||||
|
.and("aircraftCode", "321") |
||||||
|
.and("carrierCode", "TK") |
||||||
|
.and("flightNumber", "1816") |
||||||
|
.and("duration", "PT31H10M")); |
||||||
|
|
||||||
|
// Flight Create Orders to book a flight |
||||||
|
// Using a JSonObject or String |
||||||
|
FlightOrder createdOrder = amadeus.booking.flightOrders.post(body); |
||||||
|
|
||||||
|
// Using a JsonObject for flight offer and Traveler[] as traveler information |
||||||
|
// see example at src/main/java/examples/flight/createorders/FlightCreateOrders.java |
||||||
|
FlightOrder createdOrder = amadeus.booking.flightOrders.post(flightOffersSearches, travelerArray); |
||||||
|
|
||||||
|
// What is the the seat map of a given flight? |
||||||
|
SeatMap[] seatmap = amadeus.shopping.seatMaps.get(Params |
||||||
|
.with("flight-orderId", "eJzTd9f3NjIJdzUGAAp%2fAiY=")); |
||||||
|
|
||||||
|
// What is the the seat map of a given flight? |
||||||
|
// The body can be a String version of your JSON or a JsonObject |
||||||
|
SeatMap[] seatmap = amadeus.shopping.seatMaps.post(body); |
||||||
|
|
||||||
|
// Trip Purpose Prediction |
||||||
|
Prediction tripPurpose = amadeus.travel.predictions.tripPurpose.get(Params |
||||||
|
.with("originLocationCode", "NYC") |
||||||
|
.and("destinationLocationCode", "MAD") |
||||||
|
.and("departureDate", "2024-04-01") |
||||||
|
.and("returnDate", "2024-04-08")); |
||||||
|
|
||||||
|
// Travel Recommendations |
||||||
|
Location destinations = amadeus.referenceData.recommendedLocations.get(Params |
||||||
|
.with("cityCodes", "PAR") |
||||||
|
.and("travelerCountryCode", "FR")); |
||||||
|
|
||||||
|
// On Demand Flight Status |
||||||
|
DatedFlight[] flightStatus = amadeus.schedule.flights.get(Params |
||||||
|
.with("carrierCode", "AZ") |
||||||
|
.and("flightNumber", "319") |
||||||
|
.and("scheduledDepartureDate", "2024-03-13")); |
||||||
|
|
||||||
|
// Flight Price Analysis |
||||||
|
ItineraryPriceMetric[] metrics = amadeus.analytics.itineraryPriceMetrics.get(Params |
||||||
|
.with("originIataCode", "MAD") |
||||||
|
.and("destinationIataCode", "CDG") |
||||||
|
.and("departureDate", "2024-03-21")); |
||||||
|
|
||||||
|
// Airport Routes |
||||||
|
Destination[] directDestinations = amadeus.airport.directDestinations.get(Params |
||||||
|
.with("departureAirportCode","MAD") |
||||||
|
.and("max","2")); |
||||||
|
|
||||||
|
// Flight Availabilites Search POST |
||||||
|
// body can be a String version of your JSON or a JsonObject |
||||||
|
FlightAvailability[] flightAvailabilities |
||||||
|
= amadeus.shopping.availability.flightAvailabilities.post(body); |
||||||
|
|
||||||
|
|
||||||
|
// Location Score GET |
||||||
|
ScoredLocation[] scoredLocations |
||||||
|
= amadeus.location.analytics.categoryRatedAreas.get(Params |
||||||
|
.with("latitude", "41.397158") |
||||||
|
.and("longitude", "2.160873")); |
||||||
|
|
||||||
|
// Branded Fares Upsell Post |
||||||
|
// body can be a String version of your JSON or a JsonObject |
||||||
|
FlightOfferSearch[] upsellFlightOffers |
||||||
|
= amadeus.shopping.flightOffers.upselling.post(body); |
||||||
|
|
||||||
|
// Hotel List |
||||||
|
// Get list of hotels by hotel id |
||||||
|
Hotel[] hotels = amadeus.referenceData.locations.hotels.byHotels.get(Params |
||||||
|
.with("hotelIds", "ADPAR001")); |
||||||
|
// Get list of hotels by city code |
||||||
|
Hotel[] hotels = amadeus.referenceData.locations.hotels.byCity.get(Params |
||||||
|
.with("cityCode", "PAR")); |
||||||
|
// Get list of hotels by a geocode |
||||||
|
Hotel[] hotels = amadeus.referenceData.locations.hotels.byGeocode.get(Params |
||||||
|
.with("longitude", 2.160873) |
||||||
|
.and("latitude", 41.397158)); |
||||||
|
|
||||||
|
// Hotel autocomplete names |
||||||
|
Hotel[] result = amadeus.referenceData.locations.hotel.get(Params |
||||||
|
.with("keyword", "PARI") |
||||||
|
.and("subType", "HOTEL_GDS") |
||||||
|
.and("countryCode", "FR") |
||||||
|
.and("lang", "EN") |
||||||
|
.and("max", "20")); |
||||||
|
|
||||||
|
// Hotel Offers Search API v3 |
||||||
|
// Get multiple hotel offers |
||||||
|
HotelOfferSearch[] offers = amadeus.shopping.hotelOffersSearch.get(Params |
||||||
|
.with("hotelIds", "MCLONGHM") |
||||||
|
.and("adults", 1) |
||||||
|
.and("checkInDate", "2023-11-22") |
||||||
|
.and("roomQuantity", 1) |
||||||
|
.and("paymentPolicy", "NONE") |
||||||
|
.and("bestRateOnly", true)); |
||||||
|
// Get hotel offer pricing by offer id |
||||||
|
HotelOfferSearch offer = amadeus.shopping.hotelOfferSearch("QF3MNOBDQ8").get(); |
||||||
|
|
||||||
|
// Hotel Booking |
||||||
|
// The body can be a String version of your JSON or a JsonObject |
||||||
|
HotelBooking[] hotel = amadeus.booking.hotelBookings.post(body); |
||||||
|
|
||||||
|
// Hotel Booking v2 |
||||||
|
HotelOrder hotel = amadeus.booking.hotelOrders.post(body); |
||||||
|
|
||||||
|
// Hotel Ratings / Sentiments |
||||||
|
HotelSentiment[] hotelSentiments = amadeus.ereputation.hotelSentiments.get(Params.with("hotelIds", "ELONMFS,ADNYCCTB")); |
||||||
|
|
||||||
|
// Airline Routes |
||||||
|
// Get airline destinations |
||||||
|
Destination[] destinations = amadeus.airline.destinations.get(Params |
||||||
|
.with("airlineCode", "BA") |
||||||
|
.and("max", 2)); |
||||||
|
|
||||||
|
// Transfer Search |
||||||
|
TransferOffersPost[] transfers = amadeus.shopping.transferOffers.post(body); |
||||||
|
|
||||||
|
// Transfer Booking |
||||||
|
TransferOrder transfers = amadeus.ordering.transferOrders.post(body, params); |
||||||
|
|
||||||
|
// Transfer Management |
||||||
|
TransferCancellation transfers = amadeus.ordering.transferOrder("123456").transfers.cancellation.post(params); |
||||||
@ -0,0 +1,297 @@ |
|||||||
|
# 旅游 API 项目 |
||||||
|
|
||||||
|
本项目演示了如何使用 Amadeus 旅游 API 访问各种与旅游相关的端点。 |
||||||
|
|
||||||
|
## 目录 |
||||||
|
|
||||||
|
- [项目概述](#项目概述) |
||||||
|
- [支持的端点](#支持的端点) |
||||||
|
|
||||||
|
## 项目概述 |
||||||
|
|
||||||
|
本项目提供了如何使用 Amadeus 旅游 API 执行各种与旅游相关操作的示例,例如搜索航班、酒店、景点等。 |
||||||
|
|
||||||
|
### 参考地址: |
||||||
|
|
||||||
|
``` |
||||||
|
https://github.com/amadeus4dev/amadeus-java |
||||||
|
``` |
||||||
|
|
||||||
|
### 接口地址 |
||||||
|
``` |
||||||
|
https://developers.amadeus.com/self-service/apis-docs/guides/developer-guides/resources/hotels/ |
||||||
|
``` |
||||||
|
|
||||||
|
### 机场地址查询 |
||||||
|
``` |
||||||
|
https://www.iata.org/en/publications/directories/code-search/?airport.search=WUH |
||||||
|
``` |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## 接口列表 参考github |
||||||
|
|
||||||
|
```java |
||||||
|
// Flight Inspiration Search |
||||||
|
FlightDestination[] flightDestinations = amadeus.shopping.flightDestinations.get(Params |
||||||
|
.with("origin", "MAD")); |
||||||
|
|
||||||
|
// Flight Cheapest Date Search |
||||||
|
FlightDate[] flightDates = amadeus.shopping.flightDates.get(Params |
||||||
|
.with("origin", "MAD") |
||||||
|
.and("destination", "MUC")); |
||||||
|
|
||||||
|
// Flight Offers Search v2 GET |
||||||
|
FlightOfferSearch[] flightOffersSearches = amadeus.shopping.flightOffersSearch.get( |
||||||
|
Params.with("originLocationCode", "SYD") |
||||||
|
.and("destinationLocationCode", "BKK") |
||||||
|
.and("departureDate", "2023-11-01") |
||||||
|
.and("returnDate", "2023-11-08") |
||||||
|
.and("adults", 2) |
||||||
|
.and("max", 3)); |
||||||
|
|
||||||
|
// Flight Offers Search v2 POST |
||||||
|
// body can be a String version of your JSON or a JsonObject |
||||||
|
FlightOfferSearch[] flightOffersSearches = amadeus.shopping.flightOffersSearch.post(body); |
||||||
|
|
||||||
|
// Flight Order Management |
||||||
|
// The flightOrderID comes from the Flight Create Orders (in test environment it's temporary) |
||||||
|
// Retrieve a flight order |
||||||
|
FlightOrder order = amadeus.booking.flightOrder("eJzTd9f3NjIJdzUGAAp%2fAiY=").get(); |
||||||
|
// Cancel a flight order |
||||||
|
Response order = amadeus.booking.flightOrder("eJzTd9f3NjIJdzUGAAp%2fAiY=").delete(); |
||||||
|
|
||||||
|
// Flight Offers price |
||||||
|
FlightPrice[] flightPricing = amadeus.shopping.flightOffersSearch.pricing.post( |
||||||
|
body, |
||||||
|
Params.with("include", "other-services") |
||||||
|
.and("forceClass", "false")); |
||||||
|
|
||||||
|
// Flight Choice Prediction |
||||||
|
// Note that the example calls 2 APIs: Flight Offers Search & Flight Choice Prediction |
||||||
|
FlightOfferSearch[] flightOffers = amadeus.shopping.flightOffersSearch.get( |
||||||
|
Params.with("originLocationCode", "NYC") |
||||||
|
.and("destinationLocationCode", "MAD") |
||||||
|
.and("departureDate", "2024-04-01") |
||||||
|
.and("returnDate", "2024-04-08") |
||||||
|
.and("adults", 1)); |
||||||
|
|
||||||
|
// Using a JSonObject |
||||||
|
JsonObject result = flightOffers[0].getResponse().getResult(); |
||||||
|
FlightOfferSearch[] flightOffersPrediction = amadeus.shopping.flightOffers.prediction.post(result); |
||||||
|
|
||||||
|
// Using a String |
||||||
|
String body = flightOffers[0].getResponse().getBody(); |
||||||
|
FlightOfferSearch[] flightOffersPrediction = amadeus.shopping.flightOffers.prediction.post(body); |
||||||
|
|
||||||
|
// Flight Check-in Links |
||||||
|
CheckinLink[] checkinLinks = amadeus.referenceData.urls.checkinLinks.get(Params |
||||||
|
.with("airlineCode", "BA")); |
||||||
|
|
||||||
|
// Airline Code LookUp |
||||||
|
Airline[] airlines = amadeus.referenceData.airlines.get(Params |
||||||
|
.with("airlineCodes", "BA")); |
||||||
|
|
||||||
|
// Airport & City Search (autocomplete) |
||||||
|
// Find all the cities and airports starting by the keyword 'LON' |
||||||
|
Location[] locations = amadeus.referenceData.locations.get(Params |
||||||
|
.with("keyword", "LON") |
||||||
|
.and("subType", Locations.ANY)); |
||||||
|
// Get a specific city or airport based on its id |
||||||
|
Location location = amadeus.referenceData |
||||||
|
.location("ALHR").get(); |
||||||
|
|
||||||
|
// Airport Nearest Relevant (for London) |
||||||
|
Location[] locations = amadeus.referenceData.locations.airports.get(Params |
||||||
|
.with("latitude", 0.1278) |
||||||
|
.and("longitude", 51.5074)); |
||||||
|
|
||||||
|
// City Search |
||||||
|
City[] cities = amadeus.referenceData.locations.cities.get(Params |
||||||
|
.with("keyword","PARIS")); |
||||||
|
|
||||||
|
// Flight Most Booked Destinations |
||||||
|
AirTraffic[] airTraffics = amadeus.travel.analytics.airTraffic.booked.get(Params |
||||||
|
.with("originCityCode", "MAD") |
||||||
|
.and("period", "2017-08")); |
||||||
|
|
||||||
|
// Flight Most Traveled Destinations |
||||||
|
AirTraffic[] airTraffics = amadeus.travel.analytics.airTraffic.traveled.get(Params |
||||||
|
.with("originCityCode", "MAD") |
||||||
|
.and("period", "2017-01")); |
||||||
|
|
||||||
|
// Flight Busiest Traveling Period |
||||||
|
Period[] busiestPeriods = amadeus.travel.analytics.airTraffic.busiestPeriod.get(Params |
||||||
|
.with("cityCode", "MAD") |
||||||
|
.and("period", "2017") |
||||||
|
.and("direction", BusiestPeriod.ARRIVING)); |
||||||
|
|
||||||
|
// Points of Interest |
||||||
|
// What are the popular places in Barcelona (based a geo location and a radius) |
||||||
|
PointOfInterest[] pointsOfInterest = amadeus.referenceData.locations.pointsOfInterest.get(Params |
||||||
|
.with("latitude", "41.39715") |
||||||
|
.and("longitude", "2.160873")); |
||||||
|
|
||||||
|
// What are the popular places in Barcelona? (based on a square) |
||||||
|
PointOfInterest[] pointsOfInterest = amadeus.referenceData.locations.pointsOfInterest.bySquare.get(Params |
||||||
|
.with("north", "41.397158") |
||||||
|
.and("west", "2.160873") |
||||||
|
.and("south", "41.394582") |
||||||
|
.and("east", "2.177181")); |
||||||
|
|
||||||
|
// Returns a single Point of Interest from a given id |
||||||
|
PointOfInterest pointOfInterest = amadeus.referenceData.locations.pointOfInterest("9CB40CB5D0").get(); |
||||||
|
|
||||||
|
// Tours and Activities |
||||||
|
// What are the popular activities in Barcelona (based a geo location and a radius) |
||||||
|
Activity[] activities = amadeus.shopping.activities.get(Params |
||||||
|
.with("latitude", "41.39715") |
||||||
|
.and("longitude", "2.160873")); |
||||||
|
|
||||||
|
// What are the popular activities in Barcelona? (based on a square) |
||||||
|
Activity[] activities = amadeus.shopping.activities.bySquare.get(Params |
||||||
|
.with("north", "41.397158") |
||||||
|
.and("west", "2.160873") |
||||||
|
.and("south", "41.394582") |
||||||
|
.and("east", "2.177181")); |
||||||
|
|
||||||
|
// Returns a single activity from a given id |
||||||
|
Activity activity = amadeus.shopping.activity("4615").get(); |
||||||
|
|
||||||
|
// What's the likelihood flights from this airport will leave on time? |
||||||
|
Prediction AirportOnTime = amadeus.airport.predictions.onTime.get(Params |
||||||
|
.with("airportCode", "NCE") |
||||||
|
.and("date", "2024-04-01")); |
||||||
|
|
||||||
|
// What's the likelihood of a given flight to be delayed? |
||||||
|
Prediction[] flightDelay = amadeus.travel.predictions.flightDelay.get(Params |
||||||
|
.with("originLocationCode", "NCE") |
||||||
|
.and("destinationLocationCode", "IST") |
||||||
|
.and("departureDate", "2020-08-01") |
||||||
|
.and("departureTime", "18:20:00") |
||||||
|
.and("arrivalDate", "2020-08-01") |
||||||
|
.and("arrivalTime", "22:15:00") |
||||||
|
.and("aircraftCode", "321") |
||||||
|
.and("carrierCode", "TK") |
||||||
|
.and("flightNumber", "1816") |
||||||
|
.and("duration", "PT31H10M")); |
||||||
|
|
||||||
|
// Flight Create Orders to book a flight |
||||||
|
// Using a JSonObject or String |
||||||
|
FlightOrder createdOrder = amadeus.booking.flightOrders.post(body); |
||||||
|
|
||||||
|
// Using a JsonObject for flight offer and Traveler[] as traveler information |
||||||
|
// see example at src/main/java/examples/flight/createorders/FlightCreateOrders.java |
||||||
|
FlightOrder createdOrder = amadeus.booking.flightOrders.post(flightOffersSearches, travelerArray); |
||||||
|
|
||||||
|
// What is the the seat map of a given flight? |
||||||
|
SeatMap[] seatmap = amadeus.shopping.seatMaps.get(Params |
||||||
|
.with("flight-orderId", "eJzTd9f3NjIJdzUGAAp%2fAiY=")); |
||||||
|
|
||||||
|
// What is the the seat map of a given flight? |
||||||
|
// The body can be a String version of your JSON or a JsonObject |
||||||
|
SeatMap[] seatmap = amadeus.shopping.seatMaps.post(body); |
||||||
|
|
||||||
|
// Trip Purpose Prediction |
||||||
|
Prediction tripPurpose = amadeus.travel.predictions.tripPurpose.get(Params |
||||||
|
.with("originLocationCode", "NYC") |
||||||
|
.and("destinationLocationCode", "MAD") |
||||||
|
.and("departureDate", "2024-04-01") |
||||||
|
.and("returnDate", "2024-04-08")); |
||||||
|
|
||||||
|
// Travel Recommendations |
||||||
|
Location destinations = amadeus.referenceData.recommendedLocations.get(Params |
||||||
|
.with("cityCodes", "PAR") |
||||||
|
.and("travelerCountryCode", "FR")); |
||||||
|
|
||||||
|
// On Demand Flight Status |
||||||
|
DatedFlight[] flightStatus = amadeus.schedule.flights.get(Params |
||||||
|
.with("carrierCode", "AZ") |
||||||
|
.and("flightNumber", "319") |
||||||
|
.and("scheduledDepartureDate", "2024-03-13")); |
||||||
|
|
||||||
|
// Flight Price Analysis |
||||||
|
ItineraryPriceMetric[] metrics = amadeus.analytics.itineraryPriceMetrics.get(Params |
||||||
|
.with("originIataCode", "MAD") |
||||||
|
.and("destinationIataCode", "CDG") |
||||||
|
.and("departureDate", "2024-03-21")); |
||||||
|
|
||||||
|
// Airport Routes |
||||||
|
Destination[] directDestinations = amadeus.airport.directDestinations.get(Params |
||||||
|
.with("departureAirportCode","MAD") |
||||||
|
.and("max","2")); |
||||||
|
|
||||||
|
// Flight Availabilites Search POST |
||||||
|
// body can be a String version of your JSON or a JsonObject |
||||||
|
FlightAvailability[] flightAvailabilities |
||||||
|
= amadeus.shopping.availability.flightAvailabilities.post(body); |
||||||
|
|
||||||
|
|
||||||
|
// Location Score GET |
||||||
|
ScoredLocation[] scoredLocations |
||||||
|
= amadeus.location.analytics.categoryRatedAreas.get(Params |
||||||
|
.with("latitude", "41.397158") |
||||||
|
.and("longitude", "2.160873")); |
||||||
|
|
||||||
|
// Branded Fares Upsell Post |
||||||
|
// body can be a String version of your JSON or a JsonObject |
||||||
|
FlightOfferSearch[] upsellFlightOffers |
||||||
|
= amadeus.shopping.flightOffers.upselling.post(body); |
||||||
|
|
||||||
|
// Hotel List |
||||||
|
// Get list of hotels by hotel id |
||||||
|
Hotel[] hotels = amadeus.referenceData.locations.hotels.byHotels.get(Params |
||||||
|
.with("hotelIds", "ADPAR001")); |
||||||
|
// Get list of hotels by city code |
||||||
|
Hotel[] hotels = amadeus.referenceData.locations.hotels.byCity.get(Params |
||||||
|
.with("cityCode", "PAR")); |
||||||
|
// Get list of hotels by a geocode |
||||||
|
Hotel[] hotels = amadeus.referenceData.locations.hotels.byGeocode.get(Params |
||||||
|
.with("longitude", 2.160873) |
||||||
|
.and("latitude", 41.397158)); |
||||||
|
|
||||||
|
// Hotel autocomplete names |
||||||
|
Hotel[] result = amadeus.referenceData.locations.hotel.get(Params |
||||||
|
.with("keyword", "PARI") |
||||||
|
.and("subType", "HOTEL_GDS") |
||||||
|
.and("countryCode", "FR") |
||||||
|
.and("lang", "EN") |
||||||
|
.and("max", "20")); |
||||||
|
|
||||||
|
// Hotel Offers Search API v3 |
||||||
|
// Get multiple hotel offers |
||||||
|
HotelOfferSearch[] offers = amadeus.shopping.hotelOffersSearch.get(Params |
||||||
|
.with("hotelIds", "MCLONGHM") |
||||||
|
.and("adults", 1) |
||||||
|
.and("checkInDate", "2023-11-22") |
||||||
|
.and("roomQuantity", 1) |
||||||
|
.and("paymentPolicy", "NONE") |
||||||
|
.and("bestRateOnly", true)); |
||||||
|
// Get hotel offer pricing by offer id |
||||||
|
HotelOfferSearch offer = amadeus.shopping.hotelOfferSearch("QF3MNOBDQ8").get(); |
||||||
|
|
||||||
|
// Hotel Booking |
||||||
|
// The body can be a String version of your JSON or a JsonObject |
||||||
|
HotelBooking[] hotel = amadeus.booking.hotelBookings.post(body); |
||||||
|
|
||||||
|
// Hotel Booking v2 |
||||||
|
HotelOrder hotel = amadeus.booking.hotelOrders.post(body); |
||||||
|
|
||||||
|
// Hotel Ratings / Sentiments |
||||||
|
HotelSentiment[] hotelSentiments = amadeus.ereputation.hotelSentiments.get(Params.with("hotelIds", "ELONMFS,ADNYCCTB")); |
||||||
|
|
||||||
|
// Airline Routes |
||||||
|
// Get airline destinations |
||||||
|
Destination[] destinations = amadeus.airline.destinations.get(Params |
||||||
|
.with("airlineCode", "BA") |
||||||
|
.and("max", 2)); |
||||||
|
|
||||||
|
// Transfer Search |
||||||
|
TransferOffersPost[] transfers = amadeus.shopping.transferOffers.post(body); |
||||||
|
|
||||||
|
// Transfer Booking |
||||||
|
TransferOrder transfers = amadeus.ordering.transferOrders.post(body, params); |
||||||
|
|
||||||
|
// Transfer Management |
||||||
|
TransferCancellation transfers = amadeus.ordering.transferOrder("123456").transfers.cancellation.post(params); |
||||||
|
``` |
||||||
@ -0,0 +1,2 @@ |
|||||||
|
[33532:33536:0128/145139.894:INFO:electron\shell\app\electron_main_delegate.cc:543] #### AhaElectron (relauncher) Startup #### cmd: --no-sandbox |
||||||
|
[33532:33536:0128/145140.119:INFO:electron\shell\app\electron_main_delegate.cc:298] #### AhaElectron (relauncher) Shutdown #### |
||||||
@ -0,0 +1,49 @@ |
|||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||||
|
<modelVersion>4.0.0</modelVersion> |
||||||
|
|
||||||
|
<groupId>org.example</groupId> |
||||||
|
<artifactId>travel1</artifactId> |
||||||
|
<version>1.0-SNAPSHOT</version> |
||||||
|
<packaging>jar</packaging> |
||||||
|
|
||||||
|
<name>travel1</name> |
||||||
|
<url>http://maven.apache.org</url> |
||||||
|
|
||||||
|
<properties> |
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||||
|
</properties> |
||||||
|
|
||||||
|
<dependencies> |
||||||
|
<dependency> |
||||||
|
<groupId>junit</groupId> |
||||||
|
<artifactId>junit</artifactId> |
||||||
|
<version>3.8.1</version> |
||||||
|
<scope>test</scope> |
||||||
|
</dependency> |
||||||
|
|
||||||
|
|
||||||
|
<dependency> |
||||||
|
<groupId>com.amadeus</groupId> |
||||||
|
<artifactId>amadeus-java</artifactId> |
||||||
|
<version>10.0.0</version> |
||||||
|
</dependency> |
||||||
|
|
||||||
|
<dependency> |
||||||
|
<groupId>org.projectlombok</groupId> |
||||||
|
<artifactId>lombok</artifactId> |
||||||
|
<version>1.18.32</version> |
||||||
|
<scope>provided</scope> |
||||||
|
</dependency> |
||||||
|
|
||||||
|
<!-- Source: https://mvnrepository.com/artifact/ch.qos.logback/logback-classic --> |
||||||
|
<dependency> |
||||||
|
<groupId>ch.qos.logback</groupId> |
||||||
|
<artifactId>logback-classic</artifactId> |
||||||
|
<version>1.5.26</version> |
||||||
|
<scope>compile</scope> |
||||||
|
</dependency> |
||||||
|
|
||||||
|
|
||||||
|
</dependencies> |
||||||
|
</project> |
||||||
@ -0,0 +1,32 @@ |
|||||||
|
package org.example; |
||||||
|
|
||||||
|
import com.amadeus.Amadeus; |
||||||
|
import com.amadeus.Params; |
||||||
|
import com.amadeus.exceptions.ResponseException; |
||||||
|
import com.amadeus.resources.Hotel; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
|
||||||
|
/** |
||||||
|
* Hello world! |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
@Slf4j |
||||||
|
public class App |
||||||
|
{ |
||||||
|
public static void main( String[] args ) throws ResponseException { |
||||||
|
System.out.println( "Hello World!" ); |
||||||
|
|
||||||
|
Amadeus amadeus = Amadeus |
||||||
|
.builder("jDKskm2fvqyM0rh098G3rcSzKaJIK8ZF", |
||||||
|
"rBZHbs2DGb0QznzU") |
||||||
|
.build(); |
||||||
|
|
||||||
|
//
|
||||||
|
Params params = Params.with("cityCode", "WUH"); |
||||||
|
Hotel[] rs = amadeus.referenceData.locations.hotels.byCity.get(params); |
||||||
|
log.info("rs:{}",rs); |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,38 @@ |
|||||||
|
package org.example; |
||||||
|
|
||||||
|
import junit.framework.Test; |
||||||
|
import junit.framework.TestCase; |
||||||
|
import junit.framework.TestSuite; |
||||||
|
|
||||||
|
/** |
||||||
|
* Unit test for simple App. |
||||||
|
*/ |
||||||
|
public class AppTest |
||||||
|
extends TestCase |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Create the test case |
||||||
|
* |
||||||
|
* @param testName name of the test case |
||||||
|
*/ |
||||||
|
public AppTest( String testName ) |
||||||
|
{ |
||||||
|
super( testName ); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @return the suite of tests being tested |
||||||
|
*/ |
||||||
|
public static Test suite() |
||||||
|
{ |
||||||
|
return new TestSuite( AppTest.class ); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Rigourous Test :-) |
||||||
|
*/ |
||||||
|
public void testApp() |
||||||
|
{ |
||||||
|
assertTrue( true ); |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue