Привет!
На конференциях часто слышу термин "крутить ручки". Т.е. дергать те или иные АПИшки. Этот оборот очень хорошо раскрывает то, как работает АПИ.
Детальнее: Бэкенды пишут бэк. Фронты пишут фронт. Вторым нужно что-то, через что можно общаться с бэком, т.е. слать/получать/изменять/удалять данные.
Для этого нужен какой-то интерфейс. API(endpoint) - и есть такой интерфейс(Application Programming Interface).
Так как все нагляднее на примерах, вот два варианта АПИ с внешними интерфейсами("ручками" торчащими наружу:)
1. Всеми нами любимый пример - автомобиль.
Современные авто - это уже очень серьезные технологические вещи, внутри крепко напичканные самими разными агрегатами и механизмами. Тонкости работы большинства из них нам не неведома, да и не должна быть. Так вот все, что происходит условно "под капотом" - это бэкенд. Фронт - это красивая приборная панель, которую видит водитель. АПИ в этом случае - это точки под капотом, куда подключаются провода, идущие на приборку.
Но это закрытое АПИ. Что тогда тут будет внешний интерфейсом?
В любом современном авто есть специальный разъем(ODB), куда можно подключить внешние системы диагностики, или другие приборы, получающие информацию "из под капота" в обход приборной панели. И получить можно куда больше информации.
Резюме вкратце. Есть автомобиль - внутрянка + интерфейсы для водителя, чтобы управлять внутрянкой. Это цельный продукт, все работает вместе. Но есть еще и интерфейсы выходящие наружу, дающие доступ кому угодно извне, но без нарушения механизмов работы бэкенда.
2. Интеграция почтовых сервисов и онлайн магазинов(по аналогии с кинотеатром и платежкой).
Думаю все мы когда-то заказывали что-то онлайн, и в конце указывали отделение почты, куда бы ты хотел оформить доставку. Так вот вопрос? Откуда эти онлайн магазины знают всю информацию о всех почтовых отделениях, их адресах, названиях, актуальном списке, ведь они все время меняются? Не нанимать же онлайн магазину специального человека, который будет сидеть и актуализировать эту информацию? Конечно нет:)
У почты есть сайт(бэк + фронт), и бэк дает пользоваться определенными интерфейсами кому угодно. Такими интерфейсами может быть как раз та самая информация о почтовых отделениях, их адресах, названиях, актуальном списке. Онлайн магазины просто используют АПИ почты в рамках сотрудничества. Более продвинутые почтовые сервисы делают целые виджеты, которые может добавить себе на сайт кто угодно, чтобы упростить работу с оформлением доставки. Почему это выгодно? Онлайн - магазин решает проблему доставки товара, Почта - имеет площадку для рекламы и распространяет свои услуги. По этому очень важно поддерживать внешние АПИ в актуальном состоянии, если от этого зависит бизнес.
Резюме вкратце. Есть сервис(сайт) почты, почта дает доступ к внешнему АПИ кому угодно, чтобы они могли использовать услуги почты, всегда имея актуальную информацию о услугах и точках почты.
Зачем нам тестировать АПИ?
Чтобы удостовериться, правильно ли работают "ручки", используемые внешними модулями. Так как АПИ - это по сути JSON схемы, они должны быть правильно описаны. Если схема говорит, что поле принимает int или bool, значит нужно проверить, что это так и есть. Это очень кратко. Тема тестирования АПИ это совсем отдельный разговор :)
Что касается интеграционного тестирования.
Википедия гласит - "это одна из фаз тестирования программного обеспечения, при которой отдельные программные модули объединяются и тестируются в группе."
Есть по сути тестирование АПИ - это НЕ интеграционное тестирование, но тестирование конкретного модуля, которому принадлежит это АПИ. Интеграцию мы тестируем, когда есть несколько модулей, общающихся посредством АПИ, а мы при этом получаем информацию через их общее АПИ или другие интерфейсы, отображающие их комплексную работу.