Общие сведения об 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 или irc file . |
Центр | 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
})