До того момента, пока перед нами не встает задача работы с API какого-либо сервиса, мы не задумываемся о том, как его правильнее организовать…
Да, это так… Мы не задумываемся над этим вопросом, когда проектируем API для своего сервиса, если не занимались этим ранее и не наступили на грабли фидбека недовольных пользователей.
Мы начинаем задумываться над ним только тогда, когда сами оказываемся в шкурке тех самых беспомощных пользователей, которые могут либо смириться с неудобствами, либо попытаться написать разработчикам API с просьбой упростить им жизнь…
Вот о том, как упростить жизнь разработчикам и пойдет речь.
Веб-служба
Для начала давайте определимся, что такое веб-служба. Как-то так получилось, что данный термин люди понимают по разному и о того, как его понимать можно по разному понимать то, о чем и пойдет речь.
Итак, веб-служба, веб-сервис (англ. web service) — идентифицируемая конкретным адресом (домен, ип) программная система со стандартизированными интерфейсами.
Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (SOAP, XML-RPC и т. д.).
Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения.
В обиходе веб-сервисами называют услуги, оказываемые в Интернете. В этом употреблении термин требует уточнения, идёт ли речь о поиске, веб-почте, хранении документов, файлов, закладок и т. п. Такими веб-сервисами можно пользоваться независимо от места доступа в Интернет, компьютера или браузера.
Как видите, можно сказать по разному, мы сделаем на том, что веб службой будем считать …
API
Что такое API?
Определение API
Нет проблем? Сейчас придумаем!
Давайте представим, у вас есть сайт, на котором вы кропотливо, изо дня в день, собираете информацию о происходящих в вашем городе мероприятиях. Не важно как вы это делает, сами ли ручками бегаете по сайтам и собираете анонсы, или же вы написали скрипт, который за вас выполняет эту работу, важно то, что эта информация оказалась актуальной и востребованной. И в один из вечеров вам на почтовый ящик пришло письмо, в котором какая-то компания спросила у вас, есть ли API, через который будет возможно забирать от вас эту информацию. Само собой, было предложено вознаграждение, которое показалось вам привлекательным. И вот перед вами встала задача запрограммировать какой-то сервис. Первым, что нужно сделать, это ответить на простой вопрос: “Какие действия пользователь может совершать с вашим сервисом?”
Ответом на этот вопрос может быть следующее:
Получить информацию о событиях, которые могут быть в определенный промежуток времени (год, месяц, неделя, день)
Получить информацию о конкретном событии
Вроде бы немного. И ничего страшного. Всего-то нужно посмотреть на то, за какой период времени вам нужно посмотреть информацию, взять из базы то, что соответствует условиям и отдать клиенту. Ok, Вы это сделали.
Когда дело было сделано, вы связались с потенциальным клиентом и скказали, что у вас все готово для предоставления информации и вы готовы предоставить API.