Работа с API

18_01
На сайте с 05.10.2007
Offline
80
1182

Приветствую! Друзья, научите пользоваться api для получения данных на сайте. Разбираюсь на примере api aviasales. Документация у них есть https://support.travelpayouts.com/hc/ru/articles/203956163#02 , но так как никогда с api не работал, разобраться не получается.

Допустим хочу элементарно вывести самую низкую цену на перелет из города А в город Б.

Вот сам запрос: http://api.travelpayouts.com/v2/prices/latest?currency=rub&period_type=year&page=1&limit=30&show_to_affiliates=true&sorting=price&trip_class=0&token=РазместитеЗдесьВашТокен

Вот ответ:

{

"success":true,
"data":[{ "show_to_affiliates":true,
"trip_class":0,
"origin":"WMI",
"destination":"WRO",
"depart_date":"2015-12-07",
"return_date":"2015-12-13",
"number_of_changes":0,
"value":1183,
"found_at":"2015-09-22T14:08:45+04:00",
"distance":298,
"actual":true
}]
}

И чего дальше то с этим делать? :confused: И желательно не через php, а через javascript.

S
На сайте с 30.09.2016
Offline
469
#1

Это json. Рассматриваете этот код как объект javascript и выводите оттуда данные в удобной для Вас форме.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
18_01
На сайте с 05.10.2007
Offline
80
#2
Sitealert:
Это json. Рассматриваете этот код как объект javascript и выводите оттуда данные в удобной для Вас форме.

У вас нет примера? Просто кусок кода похожего, а дальше я уж сам разберусь по аналогии.

Aisamiery
На сайте с 12.04.2015
Offline
315
#3
18_01:
И чего дальше то с этим делать? 😕 И желательно не через php, а через javascript.

Вы не знаете как работать с JavaScript форматом на JavaScript?

Берем jQuery и вперед:


(function() {
var url = 'http://api.travelpayouts.com/v2/prices/lat.....';
jQuery.getJSON(url, function(response) {
console.log(response);
});
})();

Смотрим в консоль и понимаем как все просто.

Можно доку глянуть например. А дальше берем Angular\Backbone\etc и пишем нормальное приложение по работе с бэкендом (API) с контроллерами, моделями, шаблонами, роутами, историей, localStorage, кешем и прочими прелестями современной разработки

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
S
На сайте с 30.09.2016
Offline
469
#4

Описание метода на русском языке.

tommy-gung
На сайте с 22.11.2006
Offline
300
#5
18_01:
И чего дальше то с этим делать?

там же, по ссылке:

Параметры ответа

origin — пункт отправления.
destination — пункт назначения.
show_to_affiliates — false — все цены, true — только цены, найденные с партнёрским маркером (рекомендовано). Значение по умолчанию — true.
trip_class — класс перелёта:
0 — Эконом,
1 — Бизнес,
2 — Первый.
depart_date — дата отправления.
return_date — дата возвращения.
number_of_changes — количество пересадок.
value — стоимость перелета, в указанной валюте.
found_at — время и дата, когда был найден билет.
distance — расстояние между пунктом вылета и назначения.
actual — является ли предложение актуальным.
Здесь не могла быть ваша реклама
18_01
На сайте с 05.10.2007
Offline
80
#6

Начинаю соображать)

А что с этим делать:

XMLHttpRequest cannot load https://api.travelpayouts.com/v2/prices/latest?currency=rub&period_type=year&page=1&limit=30&show_to_affiliates=true&sorting=price&trip_class=0&token=xxxxxx. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://mydomen.ru' is therefore not allowed access.

Пробовал добавлять в код страницы

<?php
header('Access-Control-Allow-Origin: *');
?>

но всё-равно не работает

tommy-gung
На сайте с 22.11.2006
Offline
300
#7

они не поддерживают, видимо, jsonp ))

SI
На сайте с 03.12.2007
Offline
130
#8

https://support.travelpayouts.com/hc/ru/articles/216092357-Почему-не-работает-запрос-на-ajax


Почему не работает запрос на ajax

Почему не приходит ответ на ajax запрос к API данных?

Ajax-запросы к API не работают, так как в них в открытом виде передаётся партнерский токен доступа. А это очень плохо с точки зрения безопасности.

Запросы к API необходимо отправлять с сервера, на клиенте это сделать не получится.
-= Онлайн сервисы =-
18_01
На сайте с 05.10.2007
Offline
80
#9

Печально, придется обратиться к специалисту)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий