Автор оригинала: FreeCodeCamp Community Member.
Петр Газаров
Прежде чем я выучил разработку программного обеспечения, API звучал как пиво.
Сегодня я использую термин так часто, что я на самом деле недавно пытался заказать API в баре.
Ответ Бармен должен был бросить 404: ресурс не найден.
Я встречаю много людей, как работать в Tech, и в других местах, у которых есть довольно расплывчатое или неправильное представление о том, что это довольно общие срочные средства.
Технически, API обозначает Интерфейс программирования приложений Отказ В какой-то момент или иным образом большинство крупных компаний построили API для своих клиентов или для внутреннего использования.
Но как вы объясните API на простом английском? И есть ли более широкий смысл, чем в развитии и бизнесе? Во-первых, давайте отступим назад и посмотрим, как работает сама веб.
Www и удаленные серверы
Когда я думаю о Интернете, я представляю, что большая сеть подключенных серверы.
Каждая страница в Интернете хранится где-то на удаленном сервере. Удаленный сервер не так мистичен в конце концов – это просто часть дистанционного расположенного компьютера, который оптимизирован для обработки запросов.
Чтобы поставить вещи в перспективе, вы можете раскрутить сервер на вашем ноутбуке, способном служить целую веб-сайт к Интернету (на самом деле, A Local Server – это то, что инженеры используют для разработки веб-сайтов, прежде чем выпускать их на публику).
Когда вы вводите www.facebook.com В ваш браузер запрос выходит на удаленный сервер Facebook. Как только ваш браузер получает ответ, он интерпретирует код и отображает страницу.
В браузер, также известный как клиент Сервер Facebook является API. Это означает, что каждый раз, когда вы посещаете страницу в Интернете, вы взаимодействуете с некоторыми API удаленного сервера.
API не совпадает с удаленным сервером – скорее Это часть сервера, которая получает запросы и отправляет ответы Отказ
API как способ служить вашим клиентам
Вы, вероятно, слышали о компаниях упаковки компаний как продукты. Например, погода подземный продает доступ к его Данные о погоде API Отказ
Пример сценария: Ваш веб-сайт малого бизнеса имеет форму, используемую для подписания клиентов для встреч. Вы хотите предоставить своим клиентам возможность автоматически создавать событие Calendar Google с деталями для этого назначения.
API Использование: Идея состоит в том, чтобы сервер вашего сайта разговаривать непосредственно на сервер Google с запросом, чтобы создать событие с данными деталями. Затем ваш сервер получит ответ Google, обработать его и отправлять соответствующую информацию в браузер, такой как сообщение подтверждения пользователю.
В качестве альтернативы, ваш браузер часто может отправлять запрос API напрямую на сервер Google в обход вашего сервера.
Как этот календарь Google API отличается от API любого другого удаленного сервера там?
В технических условиях Разница в формате запроса и ответа.
Чтобы сделать всю веб-страницу, ваш браузер ожидает ответа в HTML, который содержит презентационный код, когда API Google Calendar’s Call будет просто вернуть данные – скорее всего в формате, как JSON Отказ
Если сервер вашего веб-сайта делает запрос API, то сервер вашего веб-сайта является клиентом (похожем на ваш браузер, являющийся клиентом, когда вы используете его для навигации на веб-сайте).
От перспективы ваших пользователей, API позволяют им завершить действие, не оставляя свой веб-сайт.
Большинство современных веб-сайтов потребляют, по крайней мере, некоторые сторонние API.
У многих проблем уже есть сторонние решения, будь то в форме библиотеки или услуги. Часто просто проще и надежно использовать существующее решение.
Не редкость для команд разработки не редко разбит их приложение на несколько серверов, которые разговаривают друг с другом через API. Серверы, которые выполняют функции HELPER для основного сервера приложений, обычно называются микросервисы Отказ
Чтобы обобщить, когда компания предлагает API своим клиентам, это просто означает, что они построили набор выделенных URL, которые возвращают чистые ответы на данные – значение Ответы не будут содержать вид презентационного накладного расслаивания, которые вы ожидаете в графическом пользовательском интерфейсе, как веб-сайт Отказ
Можете ли вы сделать эти запросы с вашим браузером? Часто да. Поскольку фактическая передача HTTP происходит в тексте, ваш браузер всегда будет делать все возможное, чтобы отобразить ответ.
Например, вы можете получить доступ к API GitHub напрямую с вашим браузером, даже не требуя токена доступа. Вот ответ JSON, вы получаете при посещении маршрута API пользователя GitHub в вашем браузере ( https://api.github.com/users/petrgazarov ):
{ "login": "petrgazarov", "id": 5581195, "avatar_url": "https://avatars.githubusercontent.com/u/5581195?v=3", "gravatar_id": "", "url": "https://api.github.com/users/petrgazarov", "html_url": "https://github.com/petrgazarov", "followers_url": "https://api.github.com/users/petrgazarov/followers", "following_url": "https://api.github.com/users/petrgazarov/following{/other_user}", "gists_url": "https://api.github.com/users/petrgazarov/gists{/gist_id}", "starred_url": "https://api.github.com/users/petrgazarov/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/petrgazarov/subscriptions", "organizations_url": "https://api.github.com/users/petrgazarov/orgs", "repos_url": "https://api.github.com/users/petrgazarov/repos", "events_url": "https://api.github.com/users/petrgazarov/events{/privacy}", "received_events_url": "https://api.github.com/users/petrgazarov/received_events", "type": "User", "site_admin": false, "name": "Petr Gazarov", "company": "PolicyGenius", "blog": "http://petrgazarov.com/", "location": "NYC", "email": "petrgazarov@gmail.com", "hireable": null, "bio": null, "public_repos": 23, "public_gists": 0, "followers": 7, "following": 14, "created_at": "2013-10-01T00:33:23Z", "updated_at": "2016-08-02T05:44:01Z"}
Браузер, кажется, сделал просто прекрасно отображать ответ JSON. Джойский ответ, как это готов к использованию в вашем коде. Легко извлечь данные из этого текста. Тогда вы можете делать все, что вы хотите с данными.
А для “приложения”
Закрыть, давайте бросим еще пару примеров API.
«Применение» может относиться ко многим вещам. Вот некоторые из них в контексте API:
- Часть программного обеспечения с отчетливой функцией.
- Весь сервер, все приложение или просто небольшая часть приложения.
В основном любая часть программного обеспечения, которое может быть отделено от его среды, может быть «A» в API, и, вероятно, также будет иметь какую-то API.
Допустим, вы используете стороннюю библиотеку в вашем коде. После включения в ваш код библиотека становится частью вашего общего приложения. Будучи различным программным обеспечением, библиотека, скорее всего, будет иметь API, которая позволяет ему взаимодействовать с остальной частью вашего кода.
Вот еще один пример: в Объектно-ориентированный дизайн , код организован в объекты. Ваше приложение может иметь сотни определенных объектов, которые могут взаимодействовать друг с другом.
Каждый объект имеет API – набор публичный Методы и свойства, которые он использует для взаимодействия с другими объектами в вашем приложении.
Объект также может иметь внутреннюю логику, которая является Частный, Это означает, что это скрытый с внешнего объема (а не API).
От того, что мы покрыли, я надеюсь, что вы забрали более широкий смысл API, а также более распространенные виды использования срока сегодня.
Интересные ресурсы (вещи, которые я оставил, но все еще очень круто):
Отличное видео YouTube на DNS (система доменного имени)
Основы HTTP протокол
Удивительная академия Khan Academy на объекте ориентированных на принципах проектирования