Поделиться через


Вызов конечных точек REST

Построитель API данных (DAB) предоставляет веб-API RESTful, который позволяет получать доступ к таблицам, представлениям и хранимым процедурам из подключенной базы данных. Каждый предоставленный объект базы данных определяется как сущность в конфигурации среды выполнения.

По умолчанию DAB размещает конечные точки REST по адресу:

https://{base_url}/api/{entity}

Замечание

Все элементы пути и параметры запроса чувствительны к регистру.

Ключевые слова, поддерживаемые в построителе API данных

Понятие REST Цель
Projection $select Выберите возвращаемые поля
Filtering $filter Ограничение строк по условию
Сортировка $orderby Определение порядка сортировки
Размер страницы $first Ограничение элементов на страницу
Продолжение $after Продолжить с последней страницы

Базовая структура

Чтобы вызвать REST API, создайте запрос с помощью этого шаблона:

{HTTP method} https://{base_url}/{rest-path}/{entity}

Пример чтения всех записей из сущности book :

GET https://localhost:5001/api/book

Ответ представляет собой объект JSON:

{
  "value": [
    { "id": 1, "title": "Dune" },
    { "id": 2, "title": "Foundation" }
  ]
}

Замечание

По умолчанию DAB возвращает до 100 элементов на запрос, если не настроено в противном случае (runtime.pagination.default-page-size).

Типы запросов

Каждая сущность REST поддерживает операции чтения как для коллекций, так и для отдельных записей.

Операция Описание
GET /api/{entity} Возвращает список записей
GET /api/{entity}/{primary-key-column}/{primary-key-value} Возвращает одну запись по первичному ключу

Пример возврата одной записи:

GET /api/book/id/1010

Пример возврата множества:

GET /api/book

Фильтрация результатов

$filter Используйте параметр запроса, чтобы ограничить возвращаемые записи.

GET /api/book?$filter=title eq 'Foundation'

Этот запрос возвращает все книги, название которых равно "Foundation".

Фильтры могут включать логические операторы для более сложных запросов:

GET /api/book?$filter=year ge 1970 or title eq 'Dune'

См. ссылку на аргумент $filter для поддерживаемых операторов, таких как eq, ne, lt, le, and, и or.

Сортировка результатов

Параметр $orderby определяет порядок сортировки записей.

GET /api/book?$orderby=year desc, title asc

Возвращаются книги, упорядоченные по year по убыванию, а затем по title.

См. справочник по аргументу $orderby для получения дополнительных сведений.

Ограничение результатов {#first-and-after}

Параметр $first ограничивает количество записей, возвращаемых в одном запросе.

GET /api/book?$first=5

Это возвращает первые пять книг, упорядоченных по первичному ключу по умолчанию. Вы также можете использовать $first=-1 для запроса максимального размера страницы, установленного в настройках.

Дополнительные сведения см. в справочнике по аргументам $first.

Продолжение результатов

Чтобы загрузить следующую страницу, используйте $after и токен продолжения из предыдущего ответа.

GET /api/book?$first=5&$after={continuation-token}

Маркер $after определяет, где закончился последний запрос. Дополнительные сведения см. в описании аргумента $after.

Выбор поля (проекция)

Используется $select для управления полями, включенными в ответ.

GET /api/book?$select=id,title,price

Возвращаются только указанные столбцы. Если поле отсутствует или недоступно, DAB возвращается 400 Bad Request.

Дополнительные сведения см. в справочнике по аргументам $select.

Изменение данных

REST API также поддерживает операции создания, обновления и удаления в зависимости от разрешений сущности.

Метод Действие
POST Создание нового элемента
PUT Замените существующий элемент (или создайте, если отсутствует)
PATCH Обновите существующий элемент (или создайте, если отсутствует)
DELETE Удалите элемент по первичному ключу

Пример создания новой записи:

POST /api/book
Content-type: application/json

{
  "id": 2000,
  "title": "Leviathan Wakes"
}

Пример обновления существующей записи:

PATCH /api/book/id/2000
Content-type: application/json

{
  "year": 2011,
  "pages": 577
}

Пример удаления записи:

DELETE /api/book/id/2000