Що таке API: Принципи роботи, ключові критерії та типи (REST, SOAP, GraphQL) | robot_dreams
Для відстеження статусу замовлення - авторизуйтесь
Введіть код, який був надісланий на пошту Введіть код із SMS, який був надісланий на номер
 
Код дійсний протягом 2 хвилин Код з SMS дійсний протягом 2 хвилин
Ви впевнені, що хочете вийти?
Сеанс завершено
На головну
Що таке API?

Що таке API?

Як інтерфейси спрощують обмін даними

API, або ж Application Programming Interface — це програмний інтерфейс, який описує способи взаємодії з застосунком. Великі компанії (зокрема Telegram, Facebook і Google) часто дозволяють стороннім розробникам користуватися своїми API. Простими словами, це такий міст, що дає змогу користуватися функціоналом, який розробила компанія у своїх цілях.

Наприклад, ви можете створити бота, налаштувати автоматичну публікацію на власній сторінці в соцмережах або розмістити інтерактивну карту на сайті. API існують навіть у мов програмування та апаратних компонентів.

Зручний API складається з чотирьох важливих критеріїв:

  • Документація
  • Валідація даних
  • Продуктивність
  • Безпека

Ці параметри залежать від обраних технологічних рішень і ваших вимог. Наприклад, який обсяг даних передаватиметься, як саме оброблятимуться помилки та повертатимуться їхні коди.

API як інтерфейс

API — це контракт для конкретного застосунку. Він дозволяє застосунку приймати від розробників дані (запит) у визначеному форматі, обробляти їх за допомогою бізнес-логіки, а потім повертати результат. Усе це відбувається за єдиною для всіх схемою, що спрощує роботу із застосунком. Вам не потрібно заглиблюватися в реалізацію функцій — достатньо працювати з наданими методами.

Кожний API має детальну документацію, яка описує, як працювати з такими запитами. За кожен тип дії відповідає окремий метод. 

Наприклад, існують запити для читання та оновлення даних. Надсилаючи запит, ви заздалегідь знаєте, які дані отримаєте у відповідь. Так, скажімо, можна отримати інформацію про статус свого відправлення від «Нової Пошти».

Для цього знадобиться зробити запит на отримання статусу відправлення за номером ТТН:

POST https://api.novaposhta.ua/v2.0/json/

Далі потрібно сформувати сам запит:

{

  "apiKey": "YOUR_API_KEY",

  "modelName": "TrackingDocument",

  "calledMethod": "getStatusDocuments",

  "methodProperties": {

    "Documents": [

      { "DocumentNumber": "20450712345678" }

    ]

  }}

А відповідь виглядатиме приблизно так:

{

  "data": [

    {

      "Status": "Відправлення у відділенні",

      "CitySender": "Київ",

      "CityRecipient": "Львів",

      "WarehouseRecipient": "Відділення №3"

    }

  ]}

Так ви точно знаєте, що отримаєте: статус посилки, місто відправлення, місто отримання, відділення.

Як застосовувати API

За допомогою API можна працювати з джерелами даних, графікою, відео та керувати станом об’єктів. Також ви можете використовувати сторонні API, щоб розширити функціональність власного застосунку. 

Наприклад, якщо ви розробляєте застосунок для прогнозування курсу біткоїна і вам потрібно збирати дані з трейдингових платформ, API цих платформ чудово допоможе.

Можна уявити, що проєктування роботи з API працює ланцюжком. Різні API можуть взаємодіяти між собою. Наприклад, можна створити прошарок, який прийматиме запити від одного API та передаватиме їх до іншого, при цьому формати вхідних та вихідних даних можуть не збігатися.

Також кілька API та бібліотек можуть бути об’єднані в один SDK (Software Developer Kit). У такому випадку ви отримуєте повний набір інструментів для створення застосунку — наприклад, iOS SDK. В ньому, власне, є все, що потрібно для створення застосунку для iOS-платформи. 

До прикладу, в ньому є SiriKit — окремий функціонал для роботи з помічником Siri, або HealthKit — якщо додатку потрібно працювати з даними про здоровʼя, які збирає iPhone. 

Джерело: Apple Developer

Типи API

API можуть розроблятися для апаратних компонентів, операційних систем, вебсервісів та застосунків. Вони бувають публічними та приватними, а доступ до них може продаватися за підпискою. Найчастіше розробники працюють саме з Web API. Формат і протокол передачі даних, а також те, як ми очікуємо отримати відповідь, поділяють Web API на кілька типів.

Джерело: Yusuf Acar для Medium

REST (Representational State Transfer)

REST — це архітектурний підхід до проєктування, за якого повідомлення передаються через HTTP-протокол.

Під час роботи з REST дані можуть кешуватися, а сервер не зберігає стан клієнта, адже в кожному запиті передаються всі дані, необхідні для обробки. Перевага цього підходу в тому, що можна передавати будь-які дані. REST добре підходить для CRUD-застосунків з клієнт-серверною архітектурою. Можна передавати JSON, XML і навіть звичайний текст.

Недолік REST у тому, що він не має жорстких правил проєктування — лише загальні принципи. Наприклад, команди часто самі вирішують, які коди повертати у відповідях, якщо це не стандартні 200 або 404.

SOAP (Simple Object Access Protocol)

SOAP — це не архітектурний підхід, а специфікація протоколу. На відміну від попереднього типу, він може працювати не лише з HTTP, але й з SMTP та FTP. В результаті ви отримуєте API, гнучкий щодо вибору протоколу передачі даних.

SOAP вважається жорстко стандартизованим і добре справляється з розподіленими транзакціями, що робить цей підхід популярним у фінансових організаціях. Дані в запитах передаються виключно у форматі XML — JSON та інші формати не підтримуються, тому повідомлення виходять «обʼємними».

GraphQL

Це підхід до побудови API, в якому клієнт сам визначає, які саме дані йому потрібні. Замість кількох endpointʼів використовується один, а відповідь містить лише запитані поля. Такий підхід добре підходить для складних інтерфейсів та клієнтських застосунків, де важлива оптимізація кількості запитів та обсягу переданих даних.

gRPC

Високопродуктивний протокол взаємодії між сервісами, розроблений Google. Він базується на строгому контракті (Protocol Buffers), забезпечує швидку передачу даних та підтримує стримінг. gRPC найчастіше використовують для внутрішньої взаємодії в мікросервісних архітектурах, де критичні швидкість і надійність.

Важливо, що ці типи API не є конкурентами. Один web-сервіс може мати кілька API, які реалізують різні підходи. 

На завершення

Щоб краще зрозуміти, як влаштований API, завжди рекомендують книгу Continuous API Management: Making the Right Decisions in an Evolving Landscape від Mehdi Medjaoui, Erik Wilde та Ronnie Mitra. Вона пояснює, як розробляти й управляти API та яку бізнес-цінність вони приносять.

Втім, ні стаття, ні книга не принесуть практичних навичок. Їх, своєю чергою, можна здобути на курсі з тестування API з Йосипом Волощуком. З цією базою можна рухатись і далі — в AI engineering, Node.js або TypeScript і JavaScript.  

Ще статті
Порівнюємо швидкість, якість і відповідальність за результат