Многие начинающие web-разработчики всё чаще и чаще встречают эту замысловатую аббревиатуру. Бывалые программисты уже во всю пользуют API сторонних сервисов, внедряя их, на свои сайты или сайты клиентов, начинающие же -боятся этих букв и часто даже ленятся поглядеть мануалы к этим API на сайтах предоставляющих их.
Итак, не буду выдумывать собственное определение - для этого у нас есть WIKI
API - application programming interface, т.е. Интерфейс программирования приложений.
Видимо от предложенного определения многим легче не стало))
Своими словами - это удалённые сервисы, позволяющие пользоваться своими библиотеками.
Примеры:
- авторизация на сайте с помощью соц. сетей
- комментирование
- подключение платёжных систем
- поиск и выдача результатов поиска (товар, запчасти к авто и т.д)
API позволяет быстро развернуть расширенный функционал к сайту без написания дополнительных модулей или отдельных скриптов - они уже есть на стороннем сайте, который может вам предоставить этот дополнительный функционал - ваша задача - только изучить инструкцию как правильно пользоваться этими интерфейсами.
Сама интеграция очень проста, в основном это
- составить запрос с нужными параметрами
- отправить его на сервис
- принять ответ от сервиса.
Запросы могут посылаться методами GET или POST с использование curl или без него
Например чтобы передать запрос методом GET - достаточно сформировать строку url и прочитать ответ
http://service.com - сторонний сервис, предоставляющий услуги по сбору статистики просмотров вашего сайта
getdata.php - библиотека выдачи статистики
mysite.ru - ваш сайт, статистику которого вы хотите посмотреть (как правило - используется уникальный идентификатор пользователя сервиса)
august - месяц - период за который вы собираетесь посмотреть статистику
Формируем строку url
http://service.com/getdata.php?site=mysite.ru&mounth=august
Делаем запрос методом GET
$data = file_get_contents('http://service.com/getdata?site=mysite.ru&mounth=august');
Всё.
Вы обратились к http://service.com/getdata.php - указали параметры
Всё что вы получили в $data - ваша статистика.
Как правило - ответ возвращаемый API бывает 2х форматов:
- JSON
- XML
Вам остаётся обработать $data - и данные уже в читабельном виде.
Так же API может вернут в ответ ошибки - описание обработок, которых так же есть в инсрукции API
Например в$data вернулась 1 - сайт не найден, 2 - месяц со статистикой не найден и т.д.
И получается, что прежде чем обрабатывать ответ APIи выводить его на сайт - нужно всего лишь проверить - а не вернулась ли ошибка (if elseif else - в помощь)
ТАК же все без ВСЕ сервисы с API без исключения используют как дополнительный параметр в запросе - секретный ключ, который вы вводите в своём кабинете на сервисе. Делается это для того - чтобы злоумышленники не смогли подделать ваши запросы
Я показал пример обращения к API для получения информации, но сама она там не появиться) - а это значит - должен быть обработчик, который её будет добавлять
http://service.com - сторонний сервис, предоставляющий услуги по сбору статистики просмотров вашего сайта
setdata.php - библиотека записи статистики
Раз уж мы говорим о статистики посещения сайта - нужно предположить что мы собираем данные пользователей, посетителей нашего сайта
Подготовим массив с параметрами
$param = array(
'site' => 'mysite.ru',
'page' = $_SERVER['REQUEST_URI'],
'ip'=>$_SERVER['REMOTE_ADDR'],
'user_agent' => $_SERVER['HTTP_USER_AGENT']
);
Теперь можно, если API того требует - преобразуем весь массив в JSON строку
$data = json_encode($param);
и с помощью cURL отправим POST запрос к http://service.com/setdata.php
Вот 2 основных момента работы с API - передать данные и считать данные.
Так же иногда - даже не нужно формировать какие либо данные и передовать их в API - сервис может предоставить свой JS код - который достаточно будет вставить себе на страницу (на примере счётчиков гугл аналитикс, яндекс метрика и прочее)
API платёжных систем - так вообще могут возращать только 1 цифру в ответе - состояние заказа
1 - заказ в обработке
2 - заказ оплачен
Просто нужно не лениться, а повнимательней читать инструкции - которые в большенстве случаев не такие уж большие, как например vkontakte.ru - куча методов с кучей параметров)
Ну вот. надеюсь доступно расписал. если кого появилось желание попробовать написать своё API - ради бога, можно начать с простого: организовать удалённый поиск чего ибо на сайте.
Т.е. форма поиска интегрируется на сайт - а запросы с формы передаются на сторонний сайт - читается ответ и мониториться как собственная выдача.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker