API для чайников: Обучение основам API
Задумывались ли вы когда-нибудь, как различные приложения или сайты могут взаимодействовать друг с другом и обмениваться информацией? Так вот, в этом и заключается волшебство API. API, или интерфейсы прикладного программирования, представляют собой набор правил и протоколов, позволяющих различным программам взаимодействовать друг с другом и обмениваться данными или функциональными возможностями. Например, когда вы используете приложение погоды на своем телефоне, оно, скорее всего, использует API для получения текущих погодных данных из какого-либо сервиса. Или когда вы входите на веб-сайт с помощью учетной записи Google, он также использует API для доступа к информации о вашей учетной записи от Google. API находятся повсюду вокруг нас, и они значительно упрощают разработку программного обеспечения.
Почему API важны?
Вы только что узнали, что API - это набор правил и протоколов, которые помогают различным программам или даже различным частям программного обеспечения взаимодействовать друг с другом. В связи с этим у вас может возникнуть вопрос, почему API вообще важны или необходимы.
Оказывается, API - это неотъемлемая часть того, что позволяет другим разработчикам использовать ваши приложения. Давайте попробуем понять это на примере. Вы, наверное, видели различные сайты, на которых реализована опция "Войти с помощью Facebook" или "Войти с помощью Google".
Эти кнопки используют протокол OAuth, который определяет, как сайты/приложения могут получать пользовательские данные от Facebook и Google для конкретного пользователя после того, как пользователь предоставит им доступ. Facebook и Google создали API, реализующий протокол OAuth. Сторонним сайтам не нужно знать, как Facebook и Google осуществляют аутентификацию. Им достаточно знать, как запросить у Facebook или Google аутентификацию пользователя от их имени и как Facebook и Google могут проинформировать их об успешной аутентификации. Без наличия соответствующего API у этих платформ было бы очень сложно реализовать функциональность социального входа в приложения.
Подобных примеров можно привести бесчисленное множество. Посмотрите на свой компьютер. Вы можете подключить к компьютеру любую мышь или клавиатуру, и он просто работает. Это стало возможным благодаря силе хорошо определенных API. Существует согласованный протокол и способ связи, которого должны придерживаться все мыши и клавиатуры, если они хотят взаимодействовать с операционной системой. Благодаря этому "API" новые производители могут создавать новые периферийные устройства, совместимые практически со всеми распространенными операционными системами "из коробки".
Различные виды API
Как можно понять из неполного описания API, их существует бесчисленное множество, и каждый день появляются новые. Давайте обсудим несколько важных видов API и принципы их работы.
Что такое REST API?
Если вы создаете приложение, которое использует данные из сторонних онлайн-сервисов, вы наверняка сталкивались с API REST (Representational state transfer). Это наиболее распространенный способ реализации API в Интернете. REST API основан на протоколе HTTP и использует HTTP-запросы для POST (создание), PUT (обновление), GET (чтение) и DELETE данных. Такие API часто открываются по простому URL-адресу, например https://example.com/api/users, и приложения могут взаимодействовать с ними, выполняя HTTP-запросы к этому URL-адресу/конечной точке.
Этот архитектурный паттерн для создания API был определен доктором Роем Филдингом в его докторской диссертации 2000 года. Он выделил 6 характеристик, которым должен соответствовать API, чтобы считаться REST API.
REST API обычно взаимодействуют с данными в формате JSON. Ни одна спецификация не требует, чтобы данные запроса/ответа были в JSON, но это стало условностью, поскольку JSON можно легко разобрать практически на любом языке.
Примером REST API является API Free Dictionary. Вы можете воспользоваться этим API, запросив https://api.dictionaryapi.dev/api/v2/entries/en/<word>, заменив <word> на любое слово, которое вы хотите найти в словаре. Аналогичный ответ вы получите, если попытаетесь найти слово "hello":
[
{
"word": "hello",
"phonetic": "həˈləʊ",
"phonetics": [
{
"text": "həˈləʊ",
"audio": "//ssl.gstatic.com/dictionary/static/sounds/20200429/hello--_gb_1.mp3"
},
{
"text": "hɛˈləʊ"
}
],
"origin": "early 19th century: variant of earlier hollo ; related to holla.",
"meanings": [
{
"partOfSpeech": "exclamation",
"definitions": [
{
"definition": "used as a greeting or to begin a phone conversation.",
"example": "hello there, Katie!",
"synonyms": [],
"antonyms": []
}
]
},
{
"partOfSpeech": "noun",
"definitions": [
{
"definition": "an utterance of ‘hello’; a greeting.",
"example": "she was getting polite nods and hellos from people",
"synonyms": [],
"antonyms": []
}
]
},
{
"partOfSpeech": "verb",
"definitions": [
{
"definition": "say or shout ‘hello’.",
"example": "I pressed the phone button and helloed",
"synonyms": [],
"antonyms": []
}
&


