❗❗❗ ⚙️ This package is not actively maintained. You can use GraphQL API access from Travelpayouts, since it have all actual methods working properly. PR with updates are always appreciated.
Этот пакет активно не разрабатывается и не дорабатывается. Теперь можно использовать GraphQL API доступ от Travelpayouts, так как там есть все новые, корректно работающие методы. Пуллреквесты в этот пакет всегда приветствуются. ⚙️ ❗❗❗
Graphql-endpoint для получения данных из Travelpayouts API. Поддерживается получение всех данных, которые можно получить с помощью библиотеки travelpayouts-js, кроме метода holidaysByRoutes
(отброшен, потому что API выдает старые данные). Параметры для запросов в graphql такие же, как и в библиотеке, включая параметр для генерации ссылок на поиск generateUrls
. В целом graphql самодокументируемый, так что вы всегда можете посмотреть какие параметры и какого типа принимает на вход тот или иной метод через graphiql
.
git clone https://github.com/alcovegan/travelpayouts-graphql
cd travelpayouts-graphql
npm install
touch .env # после создания env-файла нужно вписать в него ваш токен API Travelpayouts в таком виде: TPAPITOKEN=xxxxxxxxxxxxxxxxxxxxxxxx
npm run dev # dev-режим
npm start # production-режим
В dev
-режиме по адресу /graphql
будет работать graphiql, в production
-режиме соответственно endpoint для запросов.
Пример использования с graphql-request.
Запрос билетов за 48 часов и календарь цен на месяц в один запрос с полями origin, destination, value, searchlink:
const { request } = require('graphql-request');
const query = `{
latest(origin: "MOW", destination: "BKK", limit: 10, currency:"RUB", generateUrls:{
url: "http://hydra.aviasales.ru"
}) {
origin
destination
value
searchlink
},
monthMatrix(origin:"MOW",destination:"BKK",month:"2018-06-01", currency:"RUB", generateUrls:{
url:"http://hydra.aviasales.ru"
}) {
origin
destination
value
searchlink
}
}`;
request('http://localhost:4000/graphql', query).then(data => console.log(data));
npm test
Тесты проводятся запросами к реальному API, поэтому возможны таймауты или пустые ответы, иногда в таком случае нужно запустить тесты еще раз.
MIT © Alexander Sharabarov