👾
Node.js
  • 🧑‍💻Full-Stack Web Developer
  • 📚Теорія
    • 1️⃣Основи Node.js
      • Вступ
      • Модулі Node.js
      • Запуск скриптів модулів в Node.js
      • Структура проєкту, експорт-імпорт, index.js як хаб
      • Модулі CommonJS
      • Модулі MJS
      • Модулі ECMAScript
      • Модулі NPM + базові модулі
      • Глобальні змінні
      • Робота з файлами
    • 2️⃣Консольні додатки
      • Створення консольних додатків
    • 3️⃣Фреймворк Express
      • Про Express
      • Nodemon і запуски скриптів
      • Postman
      • Проміжне ПЗ middleware
      • Передача даних на сервер
      • Роутінг
      • CRUD
      • Налаштування лінтера
    • 4️⃣REST API
      • Змінні оточення
      • Логування
      • REST
      • Методи HTTP
      • CORS
      • Формування URL для REST API
      • Контроллери відсутнього роуту і непередбачуваної помилки
      • Валідація даних Joi
      • Рефакторинг додатку за MVC архітектурою
      • Express автогенератор додатку
    • 5️⃣База даних Mongo.DB
      • Основи MongoDB
      • Налаштування Mongo Atlas
      • Встановлення локальної MongoDB і основні команди
    • 6️⃣ODM Mongoose
      • Mongoose
      • Порядок планування бекенд додатку
      • чорнетка
    • 7️⃣Автентифякація WJT
      • чорнетка
      • чорнетка 2
    • 8️⃣Файли
      • чернетка
    • 9️⃣тестування
      • чернетка
    • 🔟Page 14
      • імейли
    • чорнетка докер
    • чорнетка сокети
    • додаткові матеріали
    • 👷Практика
      • 1️⃣Page 4
      • 2️⃣Page 5
      • 3️⃣Page 6
      • 4️⃣Page 7
      • 5️⃣Page 8
      • 6️⃣Page 9
  • Про мене
    • Про мене
Powered by GitBook
On this page
  1. Теорія
  2. REST API

Формування URL для REST API

При написанні API потрібно давати правильні назви ресурсам. Адже інтуїтивні та прості найменування спрощують використання сервісу.

Кінцеві URL за запитом ресурсу також називають endpoints API.

Хороший підхід вибору найменування:

  • Для опису базових URL використовують іменники у множині - users, contacts.

  • Використовують конкретні та чіткі імена - на кшталт news, videos, а не абстрактні items або elements.

  • Складну логіку URL описують додаванням властивостей. Параметри ховають за знаком питання ?. Наприклад як при організації пагінації: /news?limit=25&offset=50

Розглянемо приклади хороших практик найменування:

Створити дані про клієнта:

HTTP метод: POST
URL: http://www.example.com/customers

Отримати дані клієнта з ідентифікатором клієнта ID 112233:

HTTP метод: GET
URL: http://www.example.com/customers/112233

Такий само URL використовують для HTTP методів PUT та DELETE для оновлення та видалення відповідно.

Створення нового продукту:

HTTP метод: POST
URL: http://www.example.com/products

Для читання, оновлення, видалення продукту з ID 432111, відповідно:

HTTP метод: GET, PUT, DELETE
URL: http://www.example.com/products/432111

Створення нового замовлення для клієнта поза контекстом клієнта

HTTP метод: POST
URL: http://www.example.com/orders

Створення того ж замовлення, але в контексті конкретного клієнта з ID 332244

HTTP метод: POST
URL: http://www.example.com/customers/332244/orders

Список замовлень, що належать клієнту ID 332244:

HTTP метод: GET
URL: http://www.example.com/customers/332244/orders

Нехай необхідний URL для додавання нової позиції на замовлення з ID 1234, для клієнта з ID 332244:

HTTP метод: POST
URL: http://www.example.com/customers/332244/orders/1234/lineorders

Отримання списку замовлення за ID замовлення без знання ID конкретного клієнта

HTTP метод: GET
URL: http://www.example.com/orders/8769

Пагінацію проводять через query-рядок за допомогою параметра offset - це початковий номер позиції, та параметр limit - максимальна кількість елементів, що повертаються. Вони можуть мати й інші назви, наприклад skip, limit

HTTP метод: GET
URL: http://api.example.com/resources?offset=0&limit=25

Складна фільтрація за значеннями. Можна використовувати роздільник подвійна двокрапка ::, яке відокремлює ім'я властивості від значення порівняння

HTTP метод: GET
URL: http://www.example.com/users?filter="name::sam|city::denver"

Сортування - Один зі способів, коли для кожної переданої властивості проводиться сортування в порядку зростання, а для кожної властивості, з префіксним тире ("-") сортування проводиться за зменшенням. Сепаратор для кожного імені властивості вертикальна риска ("|")

HTTP метод: GET
URL: http://www.example.com/users?sort=lastName|firstName|-birthdate

PreviousCORSNextКонтроллери відсутнього роуту і непередбачуваної помилки

Last updated 1 year ago

📚
4️⃣