Skip to content

alcovegan/travelpayouts-graphql

Repository files navigation

travelpayouts-graphql

❗​❗​❗​ ⚙️ 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

About

Graphql endpoint for Travelpayouts API with Express.js

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published