Что такое API и зачем он нужен
API переводится как Application Programming Interface: «программный интерфейс приложения».
«Интерфейс» здесь означает набор методов и правил, по которым взаимодействуют программы, а не графический интерфейс, который видят пользователи.
API это способ «подружить» разные программы и системы, чтобы использовать готовые данные и функции, а не писать всё с нуля. Благодаря этому вы экономите время и силы при разработке.
API помогает быстрее получать данные, сокращать сроки разработки, тестировать идеи (MVP) и масштабировать бизнес. Это экономит время на коде, чтобы вы могли сосредоточиться на смысле и создании крутых продуктов.
Менеджерам продуктов и аналитикам стоит знать базовые понятия и уметь работать с API: сможете уверенно разговаривать с программистами и использовать потенциал API, чтобы быстрее запускать новые решения и улучшать сервис для клиентов.
Тестировщикам тоже нужно понимать API, чтобы проверять его корректную работу. Этому учат на курсе Skypro «Инженер по тестированию». За несколько месяцев вы получите стартовые навыки и сможете найти первую работу. Специалисты центра карьеры помогут подобрать подходящую вакансию.
Хорошо продуманная инфраструктура API снижает затраты, увеличивает прибыль и открывает новые бизнес-возможности.
Основные виды API
API бывают четырех основных видов: внутренние, публичные, партнерские и составные.
Внутренние API работают внутри компании. Они связывают сервисы и приложения, которыми пользуются сотрудники. Например, помогают передавать данные и автоматизировать работу отделов.
Публичные API открывают доступ кому угодно. Один разработчик создает приложение, а другие могут его использовать, чтобы сэкономить время. Пример — Slack: там общаются, добавляют анимированные реакции, а еще создают свои сервисы на основе его функций. Вы ничего не «допиливаете» с нуля, а просто берете готовую функциональность.
Партнерские API работают как публичные, но доступны только авторизованным пользователям. ЮMoney, к примеру, сможет за вас принимать онлайн-платежи, если вы подписали договор и получили доступный ключ.
В составные API входят два или больше других API. Такая «сборная» помогает решать более сложные задачи и объединять возможности нескольких сервисов.
Функции
API это окно сервиса во внешний мир: сервис может «обращаться», чтобы что-то получить или что-то передать.
Программы обычно забирают и отдают какую-то информацию, например, о количестве товара на складе. Это основная функция API.
Но есть и другая — интеграция с другими сервисами. Эта функция удобна по четырем причинам:
- Ускоряет разработку. Вместо того чтобы разрабатывать всё с нуля, можно взять готовые решения на рынке и подключить их по API к основе приложения. Например, выгрузку цен и товаров обычно никто сам уже не пишет — на рынке хватает готовых вариантов модулей с нужными функциями.
- Добавляет функциональности. Например, текстовый редактор обычно работает только с текстом — в нём нельзя из предложений сделать задачи, задать им сроки, отслеживать их выполнение на канбан-доске. Но есть интеграции с популярными канбан-сервисами, которые позволяют это делать.
- Разграничивает доступ к данным. По API легко открыть доступ только к отдельным частям приложения или к определенной информации: полезно, если нужно дать доступ к одной базе данных или сервису нескольким разным компаниям.
- Упрощает масштабирование. Если приложение разделено на модули, которые связаны по API, проще добавлять новые модули и менять структуру, потому что все «входные точки» остаются теми же самыми.
Поэтому приложения без API — редкость.
Примеры использования API
Один из наиболее понятных примеров — сервис для сравнения цен на авиабилеты. Он получает информацию из систем бронирования разных авиакомпаний или агрегаторов через их API. Сервис не тратит ресурсы на сбор данных вручную: ему просто дают доступ по определенным правилам.
Примеры API — агрегаторы такси и городской транспорт. Допустим, в городе есть много автобусов и трамваев и каждый передает координаты во внутренний API. Каждая автопарк-компания собирает эти данные, но полная картина есть только у госорганизации, которая показывает время прибытия ближайшего автобуса на табло остановок. У нее — отдельный публичный API.
Каждая транспортная компания агрегирует свои данные, но целую картину увидит только государственная компания, которой нужно выводить на табло остановок общественного транспорта информацию о времени прибытия ближайшего автобуса. У нее — свой публичный API.
Как устроены API
Теперь разберемся, как работает API. Для этого покажем, как он запрашивает, получает и отдает информацию в другие сервисы.
Запросы и ответы
API работают через «запросы» и «ответы». Вы отправляете запрос, а сервис возвращает готовый результат.
Например, у технологии точного прогноза погоды Meteum 2.0 всё устроено так:
- пользовательский запрос (кто-то боится промокнуть под дождем) поступает в систему;
- Meteum 2.0 берет данные из пяти погодных центров;
- дополняет их информацией от пользователей, которые совсем недавно были в этом регионе;
- отправляет ответ в зашифрованном виде.
Что именно указывать и как передавать данные, описано в документации к API.
HTTP-методы
В самых популярных (RESTful) API используют три основных HTTP-метода: POST, GET и PUT.
- POST создает новые ресурсы. Например, вы хотите добавить новое сообщение через публичное API Slack — это и будет POST.
- GET читает данные. В Meteum 2.0, например, он отвечает за получение прогноза погоды.
- PUT обновляет или заменяет данные. Например, если вы меняете адрес почты пользователя.
Еще один известный метод — DELETE. Он удаляет ресурсы или данные.
Освоить HTTP-методы, тестирование и автоматизацию запросов можно на курсе Skypro«Инженер по тестированию». Там есть блок, где вы шаг за шагом делаете проект в Postman и пробуете нагрузочные тесты.
Конечные точки (Endpoints)
Эндпоинт — это «точка соприкосновения» API и программы.
Представьте: вы попросили голосового помощника «Яндекс Алиса» узнать погоду в Йошкар-Оле, она отправила запрос к Meteum 2.0, а Meteum 2.0 запросил данные во Всемирной метеорологической организации. Всё это — конечные точки, которые соединены между собой.
Одна и та же конечная точка может обрабатывать несколько запросов подряд: получать, обновлять и удалять данные.
Коды ответов
Когда общаетесь с API, постоянно видите набор кодов. Они сигнализируют, как прошел запрос:
- Диапазон 200 говорит об успехе.
- Диапазон 400 означает ошибку на стороне пользователя (например, не передали нужный параметр).
- Диапазон 500 сообщает об ошибке на серверах API.
Вся информация об этих кодах обычно есть в документации к API, в разделе про обработку ошибок.
Аутентификация и авторизация
Почти все API требуют авторизовать запросы. Так система понимает, кто вы и что вам можно.
- Аутентификация показывает: «Я тот, за кого себя выдаю». Обычно это логин, пароль и специальный токен.
- Авторизация решает, что вам разрешено делать. Например, одним группам пользователей можно только смотреть данные, а другим — менять их.
Документация API
Документация API это очень важная вещь, которую нужно уметь читать хотя бы наискосок. Благодаря документации разработчик может общаться с сервисом «на одном языке». В ней прописано:
- как пользователю доказать API, что он — это он;
- что можно делать через API;
- как передаются параметры в запросах, чтобы API понял, что от него хотят;
- как нужно отправлять эту информацию внутри сервиса;
- количество запросов, которые можно сделать за определенный период времени;
- как будет возвращаться ответ;
- какие есть коды ответов и как обрабатывать возможные ошибки.
Пример документации: единый API для приема платежей, отправки чеков, проведения возвратов и других операций.
Преимущества работы с API
Все основные преимущества вы уже знаете — расширение функциональности, ускорение разработки, безопасность и хорошо известные эндпойнты приложения, благодаря которым его проще масштабировать и добавлять новые возможности.
Но есть и другие преимущества в том, чтобы разрабатывать приложение с API:
- Стандартизация проекта. Общие входные точки заставляют всех разработчиков из разных команд ориентироваться на них при разработке.
- Проще понимать, где чья зона ответственности. Каждый сервис «знает», какие данные и функции предоставляет. Поэтому при утечке данных или ошибке проще определить, кто должен вносить исправления.
- Легкий рефакторинг. Изменения внутри модуля меньше затрагивают другие модули, если работа с эндпойнтами проведена грамотно.
Так что у разработки через API есть преимущества, даже если вы не планируете с самого начала забирать или отдавать много данных.
Где найти новые API
Крупные компании часто размещают новинки у себя на сайтах. Узнать обо всём можно по их рассылкам и постам в соцсетях. Если подпишетесь на фаворитов своей отрасли, своевременно получите информацию о любом новом API.
Есть и открытые платформы, каталоги, торговые площадки, где любой разработчик может выложить свой публичный API. И даже заработать на нём. Появится дополнительная узнаваемость, а компания сможет монетизировать готовое решение.
Ссылки, которые стоит проверить:
А если хотите написать собственный API, приходите на курс Skypro «Java-разработчик». Под руководством опытного наставника разберетесь в принципах работы API и разработаете веб-приложение с нуля.
Как правильно работать с API
В теории начать работать с API — просто.
- Подготовьтесь. Найдите и внимательно изучите документацию к нужному API. В ней есть информация о доступных методах, типах запросов и формате ответов. Если это партнерский или платный API, зарегистрируйтесь на сайте или подпишите договор, чтобы получить ключ (token) доступа.
- Авторизуйтесь с помощью ключа и вызовите API. В зависимости от политики провайдера API, может потребоваться разная схема авторизации — Basic Auth, OAuth и т. п.
- Отправьте запрос. Чем точнее запрос, тем яснее ответ. Используйте правильный метод — GET, POST, PUT, DELETE или другой.
- Получите ответ или код ошибки. Если получаете код 2xx (например, 200 или 201), запрос успешен и можно работать с данными. Если приходит 5xx — проблема на стороне сервера. Подождите немного или обратитесь к провайдеру API, если сбой постоянный. Если видите код 4xx — ошибка клиента: проверьте, всё ли правильно передали в запросе (отсутствующие поля, неверные форматы).
- Соотнесите ответ в JSON-формате со своей базой данных и выделите нужные поля. Отобразите данные в интерфейсе или сохраните в своей базе.
На практике же разработчики часто не уделяют внимания документации к API: им лень прописывать детали, а при обновлениях приложения старые версии могут перестать работать. Еще одна частая проблема — обновляют бэкенд, но забывают проверить API.
Из-за этого API-интеграции нужно тщательно тестировать на каждом этапе.
Как тестировать API
В основном надо проверять ответы сервера: просто делать запросы по API и смотреть на коды ответов.
Также тестировщики рекомендуют писать модульные тесты, чтобы проверять бизнес-логику и основные функции сервиса отдельно. И проверять безопасность.
При должной поддержке версионности и своевременном обновлении документации проблем не возникает.
Что почитать
На Хабр.ру есть статья «API от А до Я (теория и практика)». Автор объясняет, что такое API, показывает разницу между различными протоколами и как настраивать API на конкретном примере. Также на Хабре есть статья «Введение в REST API — RESTful веб-сервисы» о популярном архитектурном подходе к разработке API под названием REST.
Про важность API можно прочесть в манифесте Безоса про API на сайте Amazon, если вы знаете английский язык. Про принцип разработки API-first development можно почитать в одноименной статье в блоге WMWare.
Главное про API
- API помогает программам делиться данными и подключать возможности других сервисов. Он упрощает работу с другими системами, защищает приложение и помогает ему масштабироваться.
- Если вы менеджер в IT-сфере или тестировщик, вам нужно знать, как работает API, чтобы говорить на понятном для разработчиков языке. Если аналитик — API поможет собирать данные для анализа.
- Тестировщики посылают запросы разными методами и разбирают коды ответов, чтобы проверить работу API.
- API бывает внутренним, публичным, партнерским и составным. У каждого своя роль и свои правила, которые оберегают данные.
- API обменивается запросами и ответами через HTTP-методы (GET, POST, PUT и т. д.). Коды 2xx, 4xx и 5xx показывают, всё прошло нормально или возникла ошибка.
- API умеет проверять личность и назначать права, чтобы ограничить доступ к данным. Разработчики раздают ключи или токены, и по ним система решает, кто может читать или менять информацию.
- Те, кто создает API, подробно рассказывают, как им пользоваться, в документации. Там описаны методы, формат запросов, типичные ошибки и как их исправить.
Добавить комментарий