Я пытаюсь выяснить, как правильно поддерживать возврат количества элементов в (отфильтрованном) наборе данных в моем OData API.
Насколько я понимаю, добавление аргумента $count=true
в строку запроса должно позволять это.
Теперь, основываясь на примере из учебника в официальных документах , добавление этого параметра должно заставить веб-API возвращать просто целое число номер:
Запрос ниже возвращает общее количество людей в коллекции.
GET serviceRoot/People?$count=true
Полезная нагрузка ответа
20
С другой стороны hand, этот принятый и вполне одобренный 1 ответ указывает, что запрос с $count=true
фактически вернет объект , одно из свойств которого содержит указанное целое число. Он предоставляет примерный запрос к конечной точке образца:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers? $ count = true & $ top = 0 & $ filter = Страна eq 'Германия'
Действительно, фактическим результатом от этой конечной точки является сложный объект
{
"@odata.context": "https://services.odata.org/V4/Northwind/Northwind.svc/$metadata#Customers",
"@odata.count": 11,
"value": []
}
вместо ожидаемого результата одного целого числа
11
Почему это так? Я неправильно понимаю документацию?
1 : в момент написания ответа было 25 голосов.