Створення API з Amazon API Gateway

Розгортання застосунків в AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Три клієнти — один бекенд

  • Веб, мобільний застосунок і партнер звертаються до одного бекенду
  • Кожен використовує дещо інший формат
  • «Вхідні двері» перевіряють і трансформують кожен виклик

 

Три типи клієнтів підключаються через один API Gateway, який маршрутизує запити до бекенд-сервісів

Розгортання застосунків в AWS

Що робить API Gateway

API Gateway як керований «вхід»: веб і мобільні клієнти йдуть через центральний шлюз з маршрутизацією, автентифікацією, лімітуванням і трансформацією до Lambda, HTTP-ендпойнтів та сервісів AWS

  • Повністю керований «вхід» для ваших API
  • Обробляє маршрутизацію, автентифікацію, ліміти та трансформації
  • Знаходиться між клієнтами та вашим бекендом
  • Бекенди: Lambda, HTTP-ендпойнти або сервіси AWS
Розгортання застосунків в AWS

Типи інтеграцій

  • Lambda proxy: передає весь запит до Lambda
  • Lambda non-proxy: ви зіставляєте поля запиту й відповіді
  • HTTP: пересилає на HTTP-бекенд
  • MOCK: повертає відповідь без жодного бекенду

Чотири типи інтеграцій API Gateway: Lambda proxy передає весь запит, Lambda non-proxy використовує шаблони зіставлення, HTTP пересилає на ендпойнт, а MOCK повертає статичну відповідь

Розгортання застосунків в AWS

Трансформації запиту й відповіді

  • Шаблони зіставлення змінюють навантаження за допомогою VTL
  • Velocity Template Language трансформує body, заголовки, параметри
  • Request mapping: від формату клієнта до формату бекенду
  • Response mapping: від формату бекенду до формату клієнта

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

Розгортання застосунків в AWS

Валідація запиту

Режими валідації запиту: перевірка тіла за JSON-схемою, перевірка обов'язкових параметрів запиту та заголовків або перевірка обох до виклику бекенду Lambda

  • Відхиляйте некоректні дані перш ніж вони дістануться бекенду
  • Обов'язкові параметри: заголовки, рядки запиту, шляхи
  • Схеми моделей: перевіряють форму JSON-тела
  • Перевіряйте тіло, параметри або обидва
Розгортання застосунків в AWS

Коди статусу та контракти помилок

  • Перевизначайте коди статусу бекенду для послідовного контракту
  • Зіставте бекендовий 502 на зрозумілий 503 для клієнтів
  • Gateway responses: налаштовуйте тіла помилок
  • Клієнти отримують передбачувані помилки незалежно від бекенду

Повний життєвий цикл запиту в API Gateway: валідація відхиляє хибні дані на вході, шаблон зіставлення змінює валідний ввід для бекенду, шаблон відповіді форматує вивід у сталий клієнтський контракт

Розгортання застосунків в AWS

Збираємо все докупи

  • Запит клієнта → валідація → трансформація → бекенд
  • Хибний ввід відхиляється на вході
  • Коректний ввід переформатовують для бекенду
  • Відповідь бекенду перетворюють у клієнтський контракт

Повний життєвий цикл запиту в API Gateway: валідація відхиляє хибні дані на вході, шаблон зіставлення змінює валідний ввід для бекенду, шаблон відповіді форматує вивід у сталий клієнтський контракт

Розгортання застосунків в AWS

Давайте потренуємось!

Розгортання застосунків в AWS

Preparing Video For Download...