История из жизни
Я разнервничалась, устала на работе, захотела порадовать себя чашечкой кофе со свежайшим круассаном. Пошла в ближайшую пекарню.
Подходя к прилавку, я, честно, не хочу знать как мой круассан приготовили.
Конечно, я могла бы сделать его сама, но мне, вероятнее всего: а) Лень б) нет на то оборудования в) нет ингредиентов, и еще множество причин:) )
Ознакомилась с меню, нашла желаемую свежую пышку.
Протягиваю продавцу указанное в меню количество денег, делаю заказ.
Продавец принимает заказ, мои монеты и уходит в комнату, где хранится мой маленький источник эндрофинов. Выходит и протягивает свежий круассан.
Я сыта и довольна, а вы только что изучили фундаментальный термин в IT: API - пример в реальной жизни :)
Техничнее, пожалуйста!
Немного сухой терминологии.
API – это механизмы, которые позволяют двум программным компонентам взаимодействовать друг с другом, используя набор определений и протоколов.
В истории из жизни я специально выделяла жирненьким (от масла круассана:)) шрифтом определенные слова.
Итак, давайте разбираться.
- Я - Клиент пекарни. Ровно тот же самый термин используется и в IT: клиент. (Подробнее можем разобрать в Клиент-серверной архитектуре. Спокойно! Ничего страшного:))
- Пекарня. Именно там мне выдадут желаемую булку. Это сервер, на котором "производятся" булки.
- Прилавок пекарни. End-point, куда точно мы подходим. К слову, в пекарне может быть далеко не один прилавок. В каком-то из них, нам круассан красиво упакуют в подарочную упаковку, в каком-то нальют кофе. А может быть еще интересней: сеть любимых булочных, раскиданных по городу:) Подумайте, что это за реализация в IT?
- Меню - это документально оформленный контракт API. Я изучаю, что я должна дать (сколько денег)и что я получу: состав (=набор атрибутов), калорийность (ой, какая тут аналогия?) и время приготовления (= SLA - Service Level Agreement). Тут я рассуждаю, а подходит ли мне этот круассан вообще? Может я хочу с малиной, а не грибами! И может быть, я не готова ждать 40 минут, есть же хочется:(
- Деньги - это атрибуты, которые я даю на вход, выполняя свой запрос. Без них мне не дадут круассан, увы:(
- Заказ - Вызов API, запрос - по сути это именно мое действие обращения к прилавку с продавцом: "я тебе деньги, а ты мне - круассан".
- Полученный круассан - результат выполнения API, ответ. И да, мне легко могут ответить, что выяснилось, что круассана с малиной нет. Или что, денег я дала недостаточно. Это тоже результат:)
На этом пока у меня все:)
Мысль можно развивать, и скорее всего так я и поступлю. А если есть идеи и ваши примеры - с удовольствием их прочту.