Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Построитель 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