Изменение формы отклика с помощью параметров запроса
API OneDrive предоставляет ряд необязательных параметров запросов, с помощью которых можно управлять тем, какие данные возвращаются в отклике.
В этом разделе:
Выбор свойств
С помощью параметра select строки запроса вы можете указать разделенный запятыми список свойств, возвращаемых для ресурсов Item.
Пример
В этом примере при получении дочерних элементов возвращаются только свойства name и size.
GET /drive/root/children?select=name,size
Если отправить запрос со строкой select=name,size
, в ответ будут включены только значения этих свойств. При использовании оператора select необходимо указывать все возвращаемые свойства.
HTTP/1.1 200 OK
Content-Type: application/json
{
"value": [
{
"id": "13140a9sd9aba",
"name": "Documents",
"size": 1024
},
{
"id": "123901909124a",
"name": "Pictures",
"size": 1012010210
}
]
}
Расширение коллекций
В запросах API OneDrive дочерние коллекции не развертываются автоматически. Эта особенность позволяет уменьшить сетевой трафик и время создания ответа службой. Однако в некоторых случаях эти результаты может потребоваться включить в ответ.
Чтобы API OneDrive развернул дочернюю коллекцию и включил эти результаты, можно использовать параметр строки запроса expand.
Например, с помощью параметра expand можно получить сведения о корневом диске и элементах верхнего уровня на диске, как в приведенном ниже примере. Кроме того, в этом примере используется оператор select, чтобы возвращались только свойства id и name дочерних элементов.
GET /drive/root?expand=children(select=id,name)
Запрос возвращает элементы коллекции с развернутой дочерней коллекцией.
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "12312312541",
"name": "root",
"size": 218753122201,
"webUrl": "https://onedrive.live.com/?cid=0f040...",
"folder": {
"childCount": 4
},
"children": [
{
"id": "F04AA961744A809!48443",
"name": "Applications",
},
{
"id": "F04AA961744A809!92647",
"name": "Attachments",
},
{
"id": "F04AA961744A809!93269",
"name": "Balsmiq Sketches",
},
{
"id": "F04AA961744A809!65191",
"name": "Camera imports",
}
]
}
Сортировка коллекций
С помощью строки запроса orderby вы можете управлять порядком сортировки элементов, возвращаемых из API OneDrive. Для коллекции элементов используйте перечисленные ниже поля в параметре orderby.
- name
- size
- lastModifiedDateTime
Обратите внимание, что в OneDrive для бизнеса и SharePoint Server 2016 строка запроса orderby работает только со свойствами name и url.
Чтобы отсортировать результаты по возрастанию или убыванию, добавьте asc
или desc
к имени поля, разделив их пробелом, например: ?orderby=name%20desc
.
Например, чтобы возвращалось содержимое корня диска в OneDrive, упорядоченное по убыванию размера, используйте следующий синтаксис: /drive/items/root/children?orderby=size%20desc
.
Необязательные параметры запросов OData
Ниже представлена таблица необязательных параметров запросов OData, которые можно использовать в запросах к API OneDrive.
Имя | Значение | Состояние | Описание |
---|---|---|---|
expand | строка | доступен | Разделенный запятыми список отношений, развертываемых и включаемых в ответ. Например, чтобы получить дочерние элементы папки, используйте следующий синтаксис: expand=children . |
select | строка | доступен | Разделенный запятыми список свойств, включаемых в ответ. |
skipToken | строка | доступен | Токен разбиения на страницы, используемый для получения следующего набора результатов. |
top | int | доступен | Количество элементов, возвращаемых в наборе результатов. В API OneDrive может действовать жесткое ограничение, не позволяющее запрашивать больше элементов в одном ответе. |
orderby | строка | доступен | Разделенный запятыми список свойств, используемых для управления порядком элементов в коллекции ответа. Поддерживаются поля name , size и lastModifiedDateTime . |
filter | строка | недоступен | Строка фильтра, позволяющая отфильтровать ответ по набору условий. |
Примечание. В стандарте OData перед этими терминами добавляется префикс $
.
API OneDrive поддерживает использование этих параметров запросов как со специальным знаком, так и без него. Однако использование символа $
для этих аргументов должно быть согласованным в рамках запроса.