Общие сведения об URL-адресах и маршрутах

Завершено

Приложение имеет различные данные, которыми он управляет, например продукты или заказы. В качестве разработчика для Tailwind Traders упорядочение API в разделы для типа данных. Использование разделов помогает поддерживать и расширять приложение.

Простой способ расширения веб-приложения — убедиться, что данные доступны через выделенные URL-адреса. Два разных URL-адреса активируют две разные части кода в веб-приложении.

https://tailwindtraders.com/products
https://tailwindtraders.com/orders

В этом уроке описывается, какой URL-адрес предназначен для создания API.

URL-адрес

URL-адрес — это адрес, который пользователь вводит в клиент, например браузер, для поиска определенного сервера и определенной функциональности. Знание того, как работает URL-адрес, помогает упорядочить приложение вокруг него.

Ниже приведен типичный URL-адрес: http://localhost:8000/products/1?page=1&pageSize=20

Приведенный выше URL-адрес соответствует такому синтаксису:

scheme:[//authority]path[?query][#fragment]

Рассмотрим части примера URL-адреса: https://tailwindtraders.com/products/1?page=1&pageSize=20#sort=asc

Компонент URL-адреса Пример Description
Схема https Используемый протокол, например http, https, ftpили ircfile.
Центр tailwindtraders.com Состоит из необязательных сведений о пользователе и узле, который обычно является доменным именем.
Путь /products/1 Ноль ко многим сегментам, разделенным косой чертой (/), указывая интересующие вас ресурсы.
Query page=1&pageSize=20 Необязательная часть, определенная после ? символа, состоящая из пар параметров и значений для дальнейшего фильтрации данных.
Фрагмент sort=asc Помогает вам быть еще более конкретным, например сортировка данных в определенном порядке.

Каждый маршрут может иметь такие действия, как создание, чтение, обновление и удаление (известное как CRUD). Действие указывается методом маршрута и объединяется с дополнительными сведениями, отправленными в заголовках и тексте HTTP.

Обработчики HTTP

Express — это веб-платформа, которая помогает создавать API-интерфейсы HTTP. Используйте его для создания маршрутов, обрабатывающих HTTP-запросы.

Ниже приведен пример кода, обрабатывающего HTTP-запросы для URL-адреса /products/114:

app.get('/products/:id', (req, res) => {
  // handle this request `req.params.id`
})

Формат обработчика .app.<method>(<route>, <callback>) Запрос маршрута /products/114 с методом GET запускает код в функции, которая имеет доступ к входящего запроса (req) и возвращает ответ (res).

Этот код можно переписать, чтобы упростить чтение:

const routeHandler = (incomingRequest, outgoingResponse) => {
  // handle this request
}

app.get('/products/:id', routeHandler)

В вашей работе в Tailwind Traders может потребоваться работать в приложениях Express с помощью любого стиля кода.

Входящие данные

Данные можно отправлять в API несколькими способами:

Data Расположение Описание
Параметр маршрутизации /products/:id, где :id находится параметр Параметры маршрута являются частью URL-адреса. Они используются для идентификации определенного ресурса. Длина данных ограничена допустимой длиной URL-адреса, поэтому обычно она является короткой, например идентификатором или именем. Маршрут может иметь несколько параметров.
Параметр запроса /products?page=1&pageSize=20, где ?page=1&pageSize=20 находится параметр Параметры запроса являются частью URL-адреса. Они используются для фильтрации данных. Длина данных ограничена допустимой длиной URL-адреса, поэтому обычно она является короткой, например идентификатором или именем. Маршрут может иметь несколько параметров запроса.
Текст запроса POST /products Текст запроса является частью HTTP-запроса. Он используется для отправки данных в API. Длина данных не ограничивается допустимой длиной URL-адреса, поэтому она может быть длинной. Заголовок HTTP указывает API тип данных, таких как текст, JSON или двоичный файл.

Входящие данные обычно соответствуют следующим методам на основе цели действия:

Действие Способ Data
Создание POST Текст запроса
Прочитано GET Параметры маршрута и запроса
Обновить PUT Текст запроса
Удалить DELETE Параметры маршрута и запроса

Совет

Первая буква каждого метода орфографирует CRUD. Эти термины используются в отрасли для описания четырех основных типов операций, которые можно выполнять с данными.

Пример параметра маршрута с req.params

Предположим, что URL-адрес запроса имеет значение /products/20. Маршрут Express для обработки этого запроса:

app.get('/products/:id', (req, res) => {
    const id = req.params.id

    // get product that matches id from database
})

Пример строки запроса с req.query

Предположим, что URL-адрес запроса имеет значение /products?page=1&pageSize=20. Маршрут Express для обработки этого запроса:

app.get('/products', (req, res) => {
    const page = req.query.page
    const pageSize = req.query.pageSize

    // get next page of products from database
})

Пример текста запроса с req.body

Предположим, что URL-адрес запроса указан /products , а текст запроса — { "name": "Product 1" }. Маршрут Express для обработки этого запроса:

app.post('/products', (req, res) => {
    const name = req.body.name

    // add new product to database
})