API (Application Programming Interface) — программный интерфейс приложения
Является посредником между разработчиком приложений и какой-либо средой, с которой это приложение должно взаимодействовать.Упрощает создание кода, поскольку предоставляет набор готовых классов, функций или структур для работы с имеющимися данными
Современные Application Programming Interface часто принимают форму веб-сервисов, которые предоставляют пользователям (как людям, так и другим веб-сервисам) какую-то информацию. Обычно процедура обмена информацией и формат передачи данных структурированы, чтобы обе стороны знали, как взаимодействовать между собой.
При тестировании (Application Programming Interface) важно учитывать несколько важных аспектов:
Корректность передачи данных: необходимо убедиться, что данные передаются в правильном формате, в соответствии с документацией API, и что все поля заполнены верно.Авторизация и безопасность: необходимо убедиться, что только авторизованные пользователи имеют доступ, а также проверить, что API защищено от возможных атак.Надежность и стабильность: необходимо проверить, что API работает стабильно и надежно, в том числе в условиях высокой нагрузки, и что ошибки обрабатываются правильно.Совместимость: необходимо убедиться, что API совместимо с другими приложениями и сервисами, с которыми может быть интегрировано.
Документация: важно иметь качественную и актуальную документацию API, чтобы разработчики могли легко и быстро разобраться в его работе и использовании.
Тестирование на различных уровнях: при тестировании API необходимо учитывать все уровни тестирования, включая модульное тестирование, интеграционное тестирование и системное тестирование.
Важно понимать, что API — это ключевой компонент многих приложений и сервисов, и недостатки в его работе могут привести к серьезным последствиям. Поэтому тестирование должно проводиться тщательно и в соответствии с лучшими практиками.
Обычно при обращении к веб API используются запросы HTTP. Существуют стандартные методы, которые могут содержаться в HTTP запросе. Эти методы также называют HTTP глаголами:
- GET. Наверное, самый популярный тип запроса. Используется для получения или чтения данных.
- PUT. Обычно используется для обновления ресурса.
- POST. Обычно используется для создания нового ресурса.
- DELETE. Удаляет данные.
- И другие
Если мы хотим получить информацию о ресурсе, URI которого http://www.example.com/customers/12345, мы можем послать запрос:
GET http://www.example.com/customers/12345
Если мы хотим обновить ресурс — мы можем послать PUT-запрос:
PUT http://www.example.com/customers/12345/orders/98765
Обычные GET запросы способен посылать веб-браузер. Для посылки других типов запросов могут потребоваться скриптовые языки или специальные инструменты
Практикуемся с тестирование API:
Для ознакомления использовался сервис pipedrive.com с открытым интерфейсом эпиай.
Предварительные действия:
- Зарегистрировалась на сайте
- Получила Token (Меню -> Настройки -> API)
Обычно для использования нужен специальный ключ, с помощью которого сервер узнает пользователя
- Заходим на сайт Сайт
- В поле “Add your API token” добавляем Token из личного кабинета
В списке в левой части окна отображается список компонентов и API запросов, с помощью которых можно совершать различные действия над этими компонентами
Например:
Пункт “Deals” в списке соответствует вкладке “Сделки” на сайте
После выбора действия, например “Add a deal”, отобразился список параметров запроса и описание этих параметров.
Т.е чтобы обратиться к методу, необходимо выполнить, в данном случае, post запрос. Поля ниже — это параметры запроса. Также указывается тип данных, допустимый для каждого пар-ра.
После заполнения полей валидными данными кликаем Test endpoint и видим:
- Информацию о запросе (В формате JSON)
- Информацию об ответе.(В формате JSON)
Сервер может посылать разные коды в ответ на запросы пользователей. Это могут быть коды ошибок или просто коды, информирующие пользователей о состоянии сервера
В данном случае запрос прошел успешно. Об этом говорит запись “success: true”
- Заходим на наш сайт и видим, что в разделе “Сделки” добавилась запись “test!!!” с данными, которые мы указывали, формируя запрос
- Если при формировании запроса мы введем данные невалидного типа (например в поле где должно вводиться число, введем строку), тогда мы получим ответ с сервера:
Мы видим, что запрос не прошел (success: false) и информацию об ошибке
Досадно, что картинки не кликабельны для увеличения.
Да не такие уж они и полезные если их увеличивать