Бизнес сталкивается с API, когда нужно интегрировать друг с другом разные сервисы типа банкинга, телефонии и CRM-систем.
В статье разбираем:
- что такое API;
- как он помогает в разработке, бизнесе и маркетинге;
- нужны ли для работы с API специальные навыки;
- какие сервисы для работы с API используют наши разработчики, чтобы не писать код и настраивать интеграции в визуальном редакторе. На примере 12 STOREEZ рассказываем об интеграции Slack и Mindbox, и как это помогло ускорить работу сотрудников отдела по дружбе с клиентами.
Бизнес сталкивается с API, когда нужно интегрировать друг с другом разные сервисы типа банкинга, телефонии и CRM-систем.
В статье разбираем:
- что такое API;
- как он помогает в разработке, бизнесе и маркетинге;
- нужны ли для работы с API специальные навыки;
- какие сервисы для работы с API используют наши разработчики, чтобы не писать код и настраивать интеграции в визуальном редакторе. На примере 12 STOREEZ рассказываем об интеграции Slack и Mindbox, и как это помогло ускорить работу сотрудников отдела по дружбе с клиентами.
Что такое API
Любой сервис может получать данные из другого сервиса. Например, в CRM-системе могут отображаться данные об оплате счетов. Для этого ей нужны правила взаимодействия с банковским сервисом: CRM-система запрашивает информацию, банк отдает данные об оплате и они появляются в CRM-системе.
APIs for Beginners 2023 — How to use an API (Full Course / Tutorial)
Эти правила можно писать для каждого сервиса заново: например, придется написать несколько наборов правил для подключения CMS сайта с разными сервисами — CRM, телефонии, бухгалтерии, CDP. А это трудозатратно.
Другой способ — написать правила один раз для взаимодействия со всеми сервисами. Это и есть API.
API (application programming interface, или программный интерфейс приложения) — набор функций, который помогает приложениям, сервисам и прочему программному обеспечению обмениваться данными.
Например, чтобы показывать покупателю интернет-магазина ближайшие офлайн-точки, CMS сайта взаимодействует по API с «Яндекс.Картами». «Яндекс.Карты» получают координаты пользователя и в ответ отдают список магазинов, которые находятся рядом с этими координатами. По сути API — это инструкция разговора между сервисами.
Настройку взаимодействия между разными сервисами называют интеграцией.
Сервис Canva интегрирован с Instagram по API, поэтому дизайн можно не сохранять на смартфон, а сразу выкладывать в соцсеть
Источник: mindbox.ru
Проект API с точки зрения разработчика Android
What is an API and how does it work? (In plain English)
По словам знакомых бэкенд-разработчиков, проще всего в моем случае начать писать серверное приложение на NodeJS с использованием TypeScript.
Любопытно то, что платформа NodeJS, предназначенная только для работы с JavaScript, не выполняет код TypeScript. В связи с этим требуется преобразовать код TypeScript в JavaScript. Такой процесс называется транспиляцией.
Что касается IDE, я поэкспериментировал с 2 инструментами: Visual Studio Code и WebStorm. В итоге отдал предпочтение второму варианту. Как оказалось, мне намного проще работать с WebStorm, поскольку я привык к Android Studio. Оба эти инструмента входят в число продуктов JetBrains, поэтому обладают схожими принципами разработки.
Структура проекта
Существует множество способов организации файлов в серверном приложении. Рассмотрим один из них, более соответствующий проекту Android:
Прокомментируем эту схему, проводя терминологические параллели с разработкой Android.
- package.json — это своего рода синтез build.gradle и AndroidManifest.xml , если посмотреть на проект с точки зрения разработчика Android. В этом файле мы определяем: имя и версию приложения; главный файл, в котором оно запускается; скрипты, например задачи Gradle ; зависимости; зависимости разработки и другое.
- __test__ — каталог для размещения модульных тестов. На стороне сервера в качестве фреймворка используется Jest, аналог JUnit в разработке Android.
- jest.config.js — файл, в котором мы определяем конфигурацию тестов и способ их выполнения.
- src — каталог для группировки кода, что-то наподобие главного модуля приложения main .
Архитектура
Точки входа
На стороне сервера в качестве точек входа используются не Activity и Fragments , а маршруты (англ. routes). У нас нет UI, которого может коснуться пользователь. Приложения, которые в данном случае являются пользователями, вызывают разные маршруты: GET , POST , PUT и другие. Рассмотрим пример маршрута.
Пример 1. Базовая конфигурация для применения Express с пользовательским объектом Router .
import express, < Request, Response, NextFunction >from «express»;
require(‘express-async-errors’);
import < historyRoutes >from «./routes/history.routes»;
const app = express();
app.use(express.json());
app.use(«/history», historyRoutes);
Express — это фреймворк, упрощающий процесс создания маршрутов. Как видно, файл app.ts импортирует historyRoutes , уже определенный файлом historic.routes.ts . Рассмотрим пример метода POST , делегированного определенному контроллеру, который перенаправляет запрос в конкретный UseCase .
Пример 2. Объект Controller обрабатывает запрос POST .
import < Router >from «express»;
import < CreateNewHistoricEntryController >from «../../controllers/CreateNewHistoricEntryController»;
const historyRoutes = Router();
const createNewHistoricEntryController = new CreateNewHistoricEntryController();
historyRoutes.post(«/historic», createNewHistoricEntryController.handle);
export < historyRoutes >;
Внедрение зависимостей
Если вы с удовольствием работаете с Koin и Kodein в мире Android, то с легкостью освоите TSyringe в качестве библиотеки для внедрения зависимостей.
Следующий код отображает файл server.ts , в котором мы регистрируем ссылку на Singleton для FirestoreDataSource , реализующего интерфейс ISisOrgRepository . Этот файл подобен классу Application и является точкой входа приложения.
Пример 3. Добавление экземпляра репозитория Application , который будет доступен для всего приложения.
import < container >from «tsyringe»;
.
function setup() container.registerSingleton(
«ISisOrgRepository»,
FirestoreDataSource
);
>
.
app.listen(port, () => setup();
console.log(«Server is running. «);
>);
Библиотека TSyringe знает, что если кому-то потребуется ссылка на ISisOrgRepository , она обязана предоставить экземпляр FirestoreDataSource . В этом случае класс CreateNewHistoricEntryController должен создать CreateNewHistoricEntryUseCase . Но для этого необходимо попросить TSyringe разрешить зависимости (аргумент конструктора ISisOrgRepository ).
Пример 4. UseCase с аннотациями, помогающими библиотеке для внедрения зависимостей.
Внутри CreateNewHistoricEntryController мы можем попросить библиотеку для внедрения зависимостей о содействии в создании объекта CreateNewHistoricEntryUseCase .
Пример 5. Контроллер запрашивает ссылку на контейнер UseCase .
import < Request, Response >from «express»;
import < container >from «tsyringe»;
import < CreateNewHistoricEntryUseCase >from «../domain/useCases/CreateNewHistoricEntryUseCase»;
class CreateNewHistoricEntryController async handle(request: Request, response: Response): Promise const < beds, activity, crop, variety, resultIndicator, input >= request.body;
const useCase = container.resolve(CreateNewHistoricEntryUseCase);
const result = await useCase.execute( beds, activity, crop, variety, resultIndicator: resultIndicator, input
>);
return response.status(201).json(result);
>
>
export < CreateNewHistoricEntryController >;
Тесты
Я опробовал две очень похожие библиотеки: Jasmine и Jest. В итоге выбрал Jest, поскольку она предоставляет отличный формат вывода результатов.
Пример 6. Отчет о результатах выполнения от Jest.
Синтаксис сильно отличается от тестов JUnit, использующих Kotlin. Однако все проясняется, если понимать describe как имя набора тестов, а it — как имя модульного теста. Часть, касающаяся утверждений, не представляет сложности и напоминает принцип работы с библиотекой Truth.
Пример 7. Тест с применением Jest в TypeScript — класс TimeHelper .
mport < TimeHelper >from «util/TimeHelper»
describe(«Time Helper», () => it(«should get total minutes from 3h», () => const totalMinutes = TimeHelper.getTotalMinutes(«3h»)
expect(totalMinutes).toBe(180)
>)
it(«should get total minutes from 3h 15min», () => const totalMinutes = TimeHelper.getTotalMinutes(«3h 15min»)
expect(totalMinutes).toBe(195)
>)
>)
Дополнительные рекомендации
- Heroku — отличная платформа для размещения API. Она предоставляет удобный CLI. Если package.json в порядке, то при каждой отправке кода CLI автоматически выполняет скрипты (транспиляцию, установку зависимостей, запуск сервера).
- Insomnia — превосходный инструмент для тестирования маршрутов. С его помощью можно создавать различные среды (разработки, продакшн и т.д.)
- Swagger позволяет создавать содержательную документацию, в которой можно запускать маршруты (пример по ссылке).
Если вы начинаете задействовать новые технологии, советую обращаться к опыту специалистов и обсуждать с ними технические вопросы. Их оперативные рекомендации помогут сэкономить время и быстрее научиться всему необходимому.
- Kotlin Coroutines для Android — Прощай RxJava?
- Как работают обобщения в Kotlin
- Автоматизация создания файлов для нового экрана с плагином для Android Studio
Читайте нас в Telegram, VK и Дзен
Источник: nuancesprog.ru
Что такое API и зачем нужна эта технология
API (Application Programming Interface, с англ. программный интерфейс приложений) — это описание констант, классов, структур, процедур и функциональных возможностей компьютерной программы, простыми словами набор компонентов, при помощи которых одна программа может взаимодействовать с другой.
Как работает API
Если мы представим прикладную программу как концепцию «черного ящика», программный интерфейс можно понимать как механические органы управления — тумблеры, ручки, кнопки.
Черный ящик — система, имеющая вход для ввода информации и выход для ее вывода.
Программные компоненты API образуют строгую иерархическую пирамиду: высокоуровневые элементы взаимодействуют с компонентами по иерархии ниже. По такой цепочке компоненты и двигаются: от высших к базовым.
Программный интерфейс может реализовываться:
- Сервисом ОС.
- Интернет-протоколом.
- Программной библиотекой.
- Фреймворком.
- Множеством иных способов.
Сначала добавим пару пару слов об интерфейсе, потому что это некая граница между двумя функциональными объектами.
Пример — User Interface, который является общей границей между программой и пользователем. По сути UI — просто графическая оболочка программы, которая позволяет пользователю взаимодействовать с ее функциями. Средства ввода — мышь и клавиатура — тоже интерфейс.
Схема графического интерфейса (GUI) выглядит так:
Интерфейс может быть не только пользовательским, но и программным — для общения двух разных программ.
Присоединяйтесь к нашему Telegram-каналу!
- Теперь Вы можете читать последние новости из мира интернет-маркетинга в мессенджере Telegram на своём мобильном телефоне.
- Для этого вам необходимо подписаться на наш канал.
Зачем нужен API
Собственный API (например, у прикладной программы) — это универсальное и ускоренное решение для разработчика. Вы лишь однажды настраиваете серверную часть, а затем спокойно используйте созданный интерфейс в прикладных программах, веб-приложениях, на сайтах — где угодно.
Разработчики создают собственный API для связи с другими программами, чтобы:
- Не прописывать серверную часть каждый раз заново. На это тратится много времени.
- Сделать разработку более безопасной (посторонние люди не могут получить доступ к серверным и другим функциям).
- Не увеличивать размер исходной программы.
Еще один сценарий, зачем разработчики создают свой API — получение прибыли. Разработка программного интерфейса может вестись только с этой целью. Например, «Яндекс» разработал речевой синтезатор, чтобы зарабатывать на тех, кто хочет использовать его в своих программах.
Также на API создается колоссальное количество совершенно новых программ.
Виды API в 2023 году
Большая часть пользовательских интерфейсов относятся к вебу: это REST, RPC, SOAP.
Не путайте SOAP и REST. SOAP — это протокол, REST — архитектурный шаблон. SOAP использует служебные интерфейсы для предоставления своих функций клиентским приложениям, а REST использует унифицированные локаторы служб. Делается это для организации доступа к компонентам на аппаратном устройстве. SOAP, в отличие от REST, требует большей пропускной способности для своего использования.
Обычному пользователю не обязательно вдаваться в детали, но какие-то из них используются для удаленного вызова, другие для передачи состояний, третьи — для доступа к объектам.
Можно систематизировать типы технологии по категории доступа:
- Публичные . Создаются для получения прибыли, повышения популярности какого-либо сервиса и его дальнейшего продвижения.
- Для внутреннего использования . Используется разработчиками, например, для тестирования новых программ или в ходе отладки.
- Аффилированные . Могут использоваться для создания новых продуктов или их изменения. Спонсорские программные интерфейсы обычно создаются очень крупными сервисами для дальнейшей передачи другим разработчикам.
Также можно систематизировать по изначальной программе или сервису, в которые они встроены:
- операционная система;
- приложение;
- сайт.
Создание сайтов
- Разработка эффективных сайтов для продаж в интернете.
- Создаем сайты с нуля любой сложности, от сайтов визиток до интернет-магазинов и крупных порталов.
Давайте немного отвлечемся и взглянем на пример документации по API OpenJDK:
Обратите внимание на то, как в документации досконально описывается каждая возможность API. В данном случае — инструкция для работы с методом сортировки списка при помощи компаратора.
Примеры использования API
Вот список сервисов, которые работают благодаря этой технологии:
- Переводчик Google в режиме встраиваемого окна на сайтах.
- «Google Карты» внутри мобильного приложения Uber.
- «Сервисы 1С» на сайтах.
- Платежные системы в интернете.
- Веб-аналитика на сайте, например, «Яндекс.Метрика» и «Google Аналитика».
- Кнопки социальных сетей на сайтах:
- Карты «2ГИС» на сайтах.
- Пиксель «ВКонтакте», другие пиксели запрещенных социальных сетей:
Полный гайд по таргетированной рекламе для новичков
Без этой технологии будет сложно! Например, вы создали сайт. Чтобы он работал как обычно, пришлось бы вручную прописывать программу для подключения к интернету, для работы с несколькими браузерами, для работы с несколькими операционными системами.
Даже простой сайт общается с браузером. Браузер общается с ОС, а операционная система — с драйверами системы.
Если бы все API разом отключились, 95 % (или больше) программ и сервисов, которыми вы пользуетесь ежедневно, просто перестали бы работать.
Достоинства и недостатки технологии
Плюсы
- Необходимый доступ к чужим сервисам и технологиям — быстрый и надежный.
- Экономия времени и человеческих ресурсов при создании своих программ на основе чужих технологий.
- Отсутствие неприятных сюрпризов . Реализовать можно даже сложные функции, при этом разработчику не нужно готовиться к нестандартному поведению программы. Ну а системность и стабильность, описанные выше, сами по себе ценны для каждого разработчика.
- Не нужно заниматься сложной разработкой. То есть по факту — изобретать велосипед. Нет необходимости писать код для сложного функционала, который уже был реализован до вас.
- Универсальность . Пользовательские интерфейсы работают быстро и везде и используются повторно такое количество раз, которое необходимо разработчику.
Что такое FTP: как подключиться, программы для доступа
Минусы
- Сложность редактирования нижележащих по иерархии компонентов. Она обусловлена особенностями построения элементов на разных этапах иерархии.
- Много трудностей при ручной координации вызовов . Соединить вызовы методов API сложно, особенно при решении нестандартных задач, так как придется вручную предусматривать множество сценариев координации. С простыми же функциями все понятно и просто.
- Сложности обновления и добавления новых функций . Вносить изменения в программный интерфейс можно очень долго — и это только одна из проблем. Вторая заключается в том, что все эти изменения необходимо согласовывать в компании или сразу с разработчиком, а это займет еще большее количество времени или вообще будет невозможным.
- Тяжело адаптировать код с одного программного интерфейса на другой . Портирование особенно затруднено при глобальных изменениях — например, при замене операционной системы.
- Большое количество разных стандартов . Да, программные интерфейсы семимильными шагами идут к стандартизации. Но это лишь перспектива ближайших лет, а пока что общепринятые стандарты в программных интерфейсах просто отсутствуют. Все это замедляет процесс разработки, отладки, а еще невероятно мешает обработке в режиме реального времени.
- Некоторые решения просто плохо спроектированы изначально , например, программный интерфейс создан любителем для решения какой-либо небольшой задачи. Такие API могли проектироваться неграмотно и от них лучше изначально отказаться.
В идеале созданием пользовательских интерфейсов должны заниматься не разработчики приложений, а узкоспециализированные программисты.
Как происходит вызов функций API
Вызвать интерфейс программирования приложений можно непрямыми и непрямыми методами. Их как минимум пять.
Непрямой метод вызова API
Вы работаете с программой через графический пользовательский интерфейс. Допустим, нужно быстро сформулировать какую-либо статистику в виде отчета. Вы открываете программу, выбираете необходимый период и нажимаете кнопку «Построить» («Сформировать», «Загрузить», не суть как она называется). Пару секунд — и отчет готов. Магия в том, что это также основано на наборе функций интерфейса программирования приложений.
Теперь рассмотрим 4 прямых способа.
Вызов API внутри программы
Вы делаете первый вызов из графического интерфейса программы, а остальные составляющие API «общаются» друг с другом уже самостоятельно. Соответственно, будут как минимум две функции: вызов из интерфейса и обновление каких-либо данных. Например, 1-я функция — добавить новую строчку, 2-я — обновить данные для построения новой версии таблицы.
В 98 % случаев вызов внутри себя используется самими разработчиками, поэтому никаких дополнительных сложностей возникать не должно.
Автоматические тесты добывают необходимые методы
Это специальные программы, цель которых обнаружить какие-либо неполадки в исходном коде. Чтобы обнаружить ошибки и баги, они пытаются совершать такие же действия, как и настоящий пользователь.
Автоматические тесты могут делаться через пользовательский графический интерфейс или через интерфейс программирования приложений. При этом предусмотрено тестирование разных уровней:
- GUI — имитация действий пользователя;
- API — уровень ниже;
- UNIT — для проверки каких-либо отдельных функций, например, безопасности и юзабилити.
Система А добывает данные через API системы В
Например, вам необходимо добавить систему рекомендаций на свой сайт. Эта система подразумевает всплывающие варианты ответов в поисковой строке. Допустим, это будут адреса, чтобы пользователь при заказе не вводил почтовый адрес полностью, а мог выбрать его из списка, просто введя 2-3 буквы.
Вы подключаете API любого подходящего вам сервиса к сайту. После этого сайт сможет отправлять запросы на необходимый ресурс через программный интерфейс приложений и отображать данные уже у себя.
Это т сценарий вызова API особенно характерен для тестирования корректности интеграций.
Ручной вызов API пользователем
Не нужно возиться с GUI, если можно сделать всю работу прямо из API. Существует немало сценариев вызова человеком:
- Проверка корректности логики . Имеется в виду логика в цепочке клиент-сервера. Любой разработчик рано или поздно сталкивается с такими ошибками, так как нужно взаимодействовать с API по HTTP.
- Проверка поведения программы . Это разнообразные виды тестирований, необходимые разработчику.
- Ускорение программы . Разные виды оптимизации, для любых целей, например, сделать загрузку товаров более быстрой.
Как проверить скорость загрузки сайта и как ускорить загрузку
Актуальные тренды в API и разработке 2023 года
- Глобальное изменение бизнес-процессов и логики разработки . API-интерфейсы практически во всех сферах ускоряют бизнес-процессы и улучшают логику разработки.
Harvard Business Review отмечает: вам не обязательно быть технологической компанией, чтобы пользоваться преимуществами API — возможности есть в каждой отрасли. Использование программных интерфейсов особенно актуально не только для крупных, но и для малых бизнесов, которые пытаются охватить цифровую аудиторию через перенасыщенные и жестко контролируемые рекламные сети.
Что такое РСЯ и как настроить рекламу в Яндексе
Программный интерфейс приложений освобождает человека от посредников, соединяя одну вычислительную систему с другой напрямую.
Но забывать о пользовательском опыте на всех уровнях таких систем явно не стоит. Об этом говорит ведущий глобальный специалист по развитию бизнеса Эммелин Ван из AWS Marketplace: «Можно точно сказать, что эта технология предназначается для нашей повседневной жизни и она готова влиять на все ее аспекты еще большим образом. Возьмите любую отрасль, например, автомобильную.
Казалось бы, в ней API никак не используется. Но это заблуждение. Удаленный старт двигателя, подкачка шин перед поездкой, получение уведомления на смартфон о предстоящей замене масла. Все это — также API».
Сейчас в среде разработчиков к API относится гораздо более уважительнее. В итоге мы имеем предсказуемый цикл разработки, стабильность, квалифицированную поддержку.
Технический аудит сайта
- Наличие дублей страниц, безопасность, корректность всех технических параметров: переадресаций, robots.txt, sitemap.xml скорость загрузки и др.
- Техническая оптимизация — один из основных этапов в продвижении.
Источник: kokoc.com