API Endpoint – це URL-адреса, яка діє як точка контакту між клієнтом API і сервером API. Клієнти API надсилають запити до кінцевих точок API для доступу до функцій і даних API.
Типовий REST API має безліч кінцевих точок, що відповідають його доступним ресурсам. Наприклад, API, який підтримує додаток соціальних мереж, найімовірніше, міститиме кінцеві точки для користувачів, публікацій і коментарів. Запити до кінцевих точок API повинні включати метод, який вказує операцію, яку необхідно виконати, а також необхідні заголовки, параметри, облікові дані аутентифікації та дані тіла. Давайте разом із FoxmindED розглянемо, api endpoint що це, як працюють кінцеві точки API, перш ніж розглянути деякі рекомендації щодо їхнього проєктування та розробки. Ми також розглянемо відмінності між кінцевою точкою REST і кінцевою точкою GraphQL і обговоримо, як платформа API Postman може допомогти командам з легкістю створювати і використовувати кінцеві точки API.
Як працюють кінцеві точки API?
Отже, що таке endpoint api? Кінцеві точки API працюють шляхом підключення клієнтів і серверів API та обробки передачі даних між ними. Добре спроектований API повинен мати чіткі та інтуїтивно зрозумілі кінцеві точки, які забезпечують передбачуваний спосіб взаємодії клієнтів із ресурсами сервера. Наприклад, REST API, який підтримує простий застосунок для ведення блогу, може мати такі кінцеві точки, доступ до яких можна отримати за допомогою зазначених методів HTTP:
- /authors – для отримання списку користувачів (GET) або створення нового користувача (POST).
- /authors/:id – для отримання певного користувача (GET), поновлення наявного користувача (PUT або PATCH) або видалення певного користувача (DELETE).
- /articles – отримати список статей (GET) або створити нову статтю (POST).
- /articles/:id – щоб отримати конкретну статтю (GET), оновити наявну статтю (PUT або PATCH) або видалити певну статтю (DELETE).
У цьому прикладі ми бачимо, що API надає два набори кінцевих точок: один для ресурсу “Автор” і один для ресурсу “Стаття”. Доступ до кожного ресурсу можна отримати через дві різні кінцеві точки, залежно від типу операції, яку клієнт хоче виконати. Наприклад, якщо клієнт зацікавлений у перегляді всіх авторів у базі даних, він надішле запит GET у кінцеву точку /authors. Навпаки, кінцева точка /authors/:id дає змогу клієнту переглядати, оновлювати або видаляти дані конкретного автора, включаючи ідентифікатор автора як параметр запиту.
Клієнт API відповідає за складання та надсилання запиту на сервер API. Крім необхідних кінцевої точки і методу, запит може також включати параметри, заголовки HTTP і тіло запиту. Давайте розглянемо ці компоненти запиту трохи докладніше.
Параметри
Це змінні, які передаються в кінцеву точку API і надають конкретні інструкції для обробки API. Наприклад, кінцева точка /articles нашого простого додатка для ведення блогу може приймати параметр категорії, який буде використовуватися для отримання статей зазначеної категорії.
Заголовки запиту
Це пари “ключ-значення”, які надають додаткову інформацію про запит. Наприклад, заголовок Accept визначає типи мультимедіа, які може приймати клієнт, а заголовок Authorization використовується для надсилання токенів і ключів API для аутентифікації клієнта.
“Тіло” запиту
Воно включає фактичні дані, необхідні для створення, оновлення або видалення ресурсу. Наприклад, якщо автор хоче створити нову статтю в нашому прикладі додатка для ведення блогу, він надішле запит POST на кінцеву точку /articles із вмістом статті в тілі запиту.
Щойно клієнт надсилає запит у відповідну кінцеву точку, сервер API автентифікує його, перевіряє вхідні дані, витягує або маніпулює відповідними даними та повертає відповідь клієнту. Відповідь зазвичай містить код стану, що вказує на результат запиту, а також тіло, що містить фактичні дані, запитані клієнтом (якщо запит було успішно виконано).
курси Junior саме для вас.
Які рекомендації щодо проєктування та розроблення кінцевих точок API?
Кінцеві точки API необхідні для працездатності та продуктивності будь-якої програми. Наступні рекомендації допоможуть вам проектувати, розробляти й обслуговувати надійні, масштабовані, зручні та безпечні кінцеві точки.
- Створіть передбачувану й інтуїтивно зрозумілу структуру кінцевих точок API
Під час визначення кінцевих точок вашого API важливо використовувати чітку й інтуїтивно зрозумілу угоду та структуру іменування. По можливості одні й ті самі угоди мають застосовуватися до всіх API у вашому цифровому портфоліо. Така узгодженість допоможе створити передбачуваний користувацький досвід для споживачів вашого API, спрощуючи їм інтеграцію з вашим API.
- Впровадьте механізми безпечної аутентифікації
Кінцеві точки API – це ворота до даних програми, що робить їх привабливими об’єктами атак. Аутентифікація API включає перевірку особистості клієнта, який відправляє запит API, і відіграє вирішальну роль у посиленні безпеки API. Тому важливо використовувати механізми аутентифікації, що добре зарекомендували себе, такі як OAuth, OpenID Connect або JWT, особливо якщо ваші кінцеві точки надають доступ до конфіденційних даних.
- Перевірте та очистіть вхідні дані
Перевірка введення – це процес підтвердження того, що будь-які дані, які надсилаються в API, відповідають очікуваному формату та обмеженням, а очищення допомагає гарантувати, що вхідні дані не містять шкідливих символів. Ці процеси слід виконувати на рівні методу, щоб запобігти потраплянню будь-якого шкідливого коду в робочий процес, де він може змінити дозволи або записи бази даних.
- Чітко документуйте кожну кінцеву точку API
Документація API відіграє важливу роль у загальному успіху API. Документація щодо приватного API полегшує співпрацю між командами та зменшує дублювання коду, а загальнодоступна документація щодо API допомагає потенційним споживачам зрозуміти API та поекспериментувати з ним. Тому виробникам API вкрай важливо ретельно документувати кожну кінцеву точку API, включно з її методами, параметрами та прийнятими типами даних. Вони також повинні описати – простою мовою – те, для чого призначена кожна кінцева точка.
- Постійно тестуйте і відстежуйте кінцеві точки API
Тестування API допомагає гарантувати, що кінцеві точки API працюють належним чином, навіть у міру розвитку API. Модульні тести підтверджують, що одна кінцева точка повертає правильну відповідь на заданий запит, а наскрізні тести перевіряють складні робочі процеси, які можуть включати кілька кінцевих точок. Автоматизація тестування API може допомогти командам автоматично виявляти проблеми протягом усього процесу розробки, а моніторинг API використовує ту саму логіку для відстеження кінцевих точок API, коли їх уже запущено в експлуатацію.
У чому різниця між кінцевою точкою REST і кінцевою точкою GraphQL?
У цій статті як приклади використовувалися кінцеві точки REST API, оскільки REST сьогодні є архітектурою API, що найчастіше використовується. Але, існує безліч інших архітектур і протоколів API, включно з GraphQL, мовою запитів з відкритим вихідним кодом для API.
Між кінцевими точками REST і GraphQL існують суттєві відмінності. API REST включають у себе безліч кінцевих точок, які повертають фіксовані структури даних, що може вимагати від клієнта об’єднати кілька запитів разом, щоб отримати саме ті дані, які йому потрібні. Наприклад, користувачеві додатка для ведення блогу може бути цікаво переглянути всі повідомлення автора на ім’я Кейт Віслі. Таким чином, цей користувач може надіслати запит GET на кінцеву точку /authors і включити “Кейт Віслі” як значення параметра запиту імені. Відповідь включатиме ідентифікатор Кейт Віслі, який користувач потім включить у наступний ланцюговий запит до кінцевої точки /authors/:id/articles.
Навпаки, GraphQL дає змогу клієнтам взаємодіяти з однією кінцевою точкою і вказувати точні дані, які їм потрібні, без необхідності пов’язувати кілька запитів разом. Такий підхід зменшує кількість звернень між клієнтом і сервером, що може підвищити надійність і продуктивність завдяки зменшенню обсягу переданих даних.
Висновок
Ми живемо у світі, який тепер очікує відкритого та доступного контенту для всіх. Природним розвитком цього процесу є те, що видавці самі випускають свої власні API, щоб клієнти могли розробляти з їхньою допомогою додатки;
Спільне використання API може бути застосовано до всіх підприємств, а не тільки до тих, що базуються на веб-технологіях, а скоріше до будь-кого, хто в організації має веб-інструмент або компонент. Звичайно, ця концепція викличе перешкоди для деяких організацій, головною з яких є надання всім однакового уявлення про те, як працюють API;
Це легко, загрузнути в технічному жаргоні ендпоінт.Але, якщо застосувати до реальних випадків, стає легше зрозуміти, як API працюють так, як вони працюють. Сподіваємося, тепер ви краще розумієте один з їхніх ключових компонентів – кінцеві точки!
Залишилися запитання про те, що таке endpoint api? Запитуйте в коментарях нижче!