Введение
Возможно, вы слышали термин API и задавались вопросом, что это такое и для чего он предназначен. Веб-API — это набор инструментов, позволяющих разработчикам веб-сайтов отправлять и получать инструкции и данные, подключаясь к веб-серверам. Многие веб-сайты и веб-приложения, которые мы используем сегодня, работают на основе API.
В веб-приложениях код front-end не взаимодействует напрямую с базой данных. Вместо этого данные отправляются и принимаются через API. API выступает в качестве промежуточного уровня между бэкендом, операциями с базой данных и front-end приложениями, с которыми взаимодействует пользователь.
По сути это уровень API:
- Гарантирует, что веб-странице разрешено отправлять и получать запросы.
- Он проверяет правильность формата запроса перед отправкой его на бэкэнд.
- Возвращает данные в ожидаемом формате вместе с некоторой дополнительной информацией.
- Сообщает веб-странице, почему данные не были возвращены.
Типы API
Существуют различные типы API с разными уровнями безопасности и конфиденциальности. Существует четыре основных типа API, каждый из которых мы рассмотрим ниже:
1- Публичные API
Публичные API, также известные как внешние API, предоставляются разработчикам и другим пользователям с минимальными ограничениями. Использование этого типа API может потребовать регистрации и использования API-ключа, либо они могут быть полностью открытыми. Этот тип API предназначен для доступа внешних пользователей к данным или сервисам.
2. Внутренние API
В отличие от открытых API, внутренние API разработаны таким образом, чтобы быть скрытыми от внешних пользователей. Они используются внутри компании для совместного использования ресурсов. Они позволяют различным командам и отделам компании использовать инструменты, данные и приложения друг друга.
3. API-интерфейсы партнеров
Эти типы API технически очень похожи на открытые API, но имеют ограниченный доступ и часто управляются через сторонний API-шлюз. Они обычно предназначены для определённой цели, например, для предоставления доступа к платной услуге.
4. Гибридные API
Гибридные API позволяют разработчикам получать доступ к конечным точкам одним вызовом. Эта конечная точка может иметь несколько свойств в одном API, либо может быть службой или ресурсом. Гибридные API особенно полезны в микросервисных архитектурах, где для выполнения задачи может потребоваться информация из нескольких служб. Использование гибридных API может сократить задержку и улучшить пользовательский интерфейс приложения, поскольку один вызов может вернуть все необходимые элементы.
Типы протоколов API
Мы также можем классифицировать API по типу протокола. Протокол API состоит из правил, определяющих, какую информацию API может передавать клиентам и как именно он делится этими данными. RPC, МЫЛО и ОТДЫХ Это некоторые из самых популярных API-протоколов, используемых сегодня. Ниже мы подробнее рассмотрим каждый из них.
Удаленный вызов процедур (RPC)
Протокол RPC — самая простая из трёх архитектур. В отличие от REST и SOAP, которые обеспечивают передачу данных, RPC API вызывают процессы. Другими словами, они выполняют скрипты на сервере. RPC API могут использовать JSON или XML в своих вызовах.
Протокол доступа к сервисным объектам (SOAP)
SOAP — это протокол передачи данных по сети, который может использоваться для создания API. SOAP точно определяет, как должны отправляться сообщения и что должно в них включаться. Это делает API SOAP более безопасными, чем REST API.
Репрезентативная передача состояния (REST)
Большинство современных веб-API построены на основе REST. REST — это набор рекомендаций для масштабируемых, лёгких и простых в использовании API. REST API — это API, соответствующий рекомендациям REST и используемый для передачи данных с сервера запрашивающему клиенту.
Подводя итог, рекомендации по REST API включают следующее:
- Разделение клиент-сервер: все взаимодействия клиент-сервер должны осуществляться в форме запроса от клиента и последующего ответа от сервера.
- Единый интерфейс: все запросы и ответы должны использовать HTTP в качестве протокола связи и быть отформатированы определенным образом для обеспечения совместимости между клиентом и сервером.
- Независимость: каждое взаимодействие клиент-сервер должно быть независимым от других взаимодействий. Сервер не хранит данные клиентских запросов и не запоминает информацию о предыдущих взаимодействиях.
- Многоуровневая система: запросы и ответы всегда должны быть отформатированы одинаково, даже при отправке через промежуточные серверы между клиентом и API.
- Кэшируемость: следуя этим рекомендациям, REST API можно использовать для быстрой, простой и безопасной передачи данных, что делает их популярным выбором среди разработчиков.
Типы API с точки зрения вариантов использования
Другая классификация API может быть основана на вариантах использования, к которым относятся:
открытый API
С точки зрения структуры, открытый API представляет собой стандартный формат для определения структуры и синтаксиса стандартных REST API. Документация открытого API доступна как для машинного, так и для человеческого восприятия, что позволяет любому пользователю легко разобраться в работе каждого API. Инженеры могут использовать открытый API для программирования и проектирования серверов, разработки и проведения тестов.
API-шлюз
Большинство корпоративных API-интерфейсов развёртываются через API-шлюзы. API-шлюзы обычно выполняют типовые задачи, используемые в системе API-сервисов, такие как аутентификация пользователей, ограничение скорости и т. д. Служба API-шлюза принимает удалённый запрос и возвращает ответ.
веб-API
Приложение, известное как веб-API, представляет собой тип интерфейса с набором функций. Этот набор функций позволяет программистам получать доступ к определённым функциям или данным приложения. Веб-API, как следует из названия, — это API, который осуществляет доступ к вебу по протоколу HTTP. Он может помочь вам создавать и разрабатывать REST-сервисы для HTTP.
Для чего используется API?
Как поясняется в определении API, API позволяют компаниям предоставлять данные и функциональные возможности своих приложений сторонним разработчикам, бизнес-партнерам и внутренним подразделениям компании. Это позволяет сервисам и продуктам взаимодействовать друг с другом и использовать данные и функциональные возможности друг друга через документированный интерфейс. Разработчикам не нужно знать, как реализовать API. Они просто используют интерфейс для взаимодействия с другими сервисами и продуктами компании.
Что такое ключ API?
Ключ API — это уникальный идентификатор, используемый для аутентификации вызовов API. Ключ API — это строка букв и цифр, идентифицирующая клиента. Ключ разрешает или отклоняет запросы в зависимости от прав доступа клиента и отслеживает количество запросов для целей использования и выставления счетов. Предоставляя доступ только тем, у кого есть ключ, компания может контролировать количество вызовов своего API и гарантировать, что только определенная доверенная группа клиентов сможет получить доступ к ресурсам своего сервера.
GraphQL
GraphQL — это язык запросов с открытым исходным кодом, используемый для предоставления данных мобильным и веб-приложениям. Он похож на REST в том, что используется для извлечения данных для приложения, но его подход к извлечению данных совершенно иной. Хотя REST API великолепны и наиболее широко используются, GraphQL представляет новую технологию API, которую можно использовать для повышения эффективности и гибкости.
В чем разница между программным обеспечением и API?
Главное различие между программным обеспечением и API заключается в том, как они взаимодействуют с пользователем. Оба обеспечивают ту или иную форму взаимодействия, но API предназначены для использования программами, а программы — для использования людьми.
API-интерфейсы обычно являются лишь частью определенного программного обеспечения, и большинство используемых вами приложений в той или иной степени зависят от нескольких API.
Приложения, с другой стороны, гораздо более гибкие. Приложения могут использовать несколько API, чтобы помочь пользователю выполнить задачу. API разработаны для лёгкой интеграции с выбранным вами программным обеспечением и могут использоваться специально для рабочих процессов и отдельных пользователей.









