我使用的是Sitefinity 9.1中内置的Web Service API,它遵循OData标准。
我有一个这样的URL来接收JSON在我想要的格式:
/api/stories/storyitems?$select=Title,Summary,ageranges,UrlName,topics,ButtonText
我有一个来自该服务的JSON,看起来像这样:
"value": [
{
"Title": "Developing Reading Skills",
"Summary": "Lorem ipsum dolor sit amet",
"ageranges": [
"3ca54b5b-06ab-63fa-8375-ff00000b3273"
],
"topics": [
"f0a84b5b-06ab-63fa-8375-ff00000b3273",
"efa84b5b-06ab-63fa-8375-ff00000b3273"
],
"ButtonText": "Learn More",
"UrlName": "developing-reading-skills"
}
....
]
这个工作得很好,但是我在按范围或主题过滤此服务时遇到了问题。
我已经尝试了几种不同的解决方案。这似乎是标准的OData过滤方式,但这会抛出一个错误。我不确定这是我的格式问题,还是Sitefinity实现的问题。有人能证实吗?
/api/stories/storyitems?$filter=any(ageranges eq '3ca54b5b-06ab-63fa-8375-ff00000b3273')&$select=Title,Summary,ageranges,UrlName,topics,ButtonText
这是我在JSON中得到的错误:
{
"error": {
"code": "",
"message": "An error has occurred."
}
}
谢谢!
try:
?$filter=ageranges/any(a: a eq 'xxxx')
这篇文章指出这是正确的方法:
/api/stories/storyitems?$filter=Category/any(s:s eq d81e4d00-afe6-60df-84cd-ff0000aaa3eb)&$select=Title,Summary,ageranges,UrlName,topics,ButtonText