我正在尝试根据来自safeproducts api(http://www.saferproducts.gov/webapi/Cpsc.Cpsrms.Web.Api.svc)的关键字搜索报告,就像他们在http://www.saferproducts.gov/Search/default.aspx
网站上提供搜索功能一样但我找不到任何方法来搜索它。他们的API是OData格式,我以前从未使用过,所以我猜测它可能是我缺乏如何查询基于OData的服务的知识,或者他们只是不在他们的Web服务中提供任何搜索方法。
任何人都能确认我的理解是否正确?
谢谢, 汗
答案 0 :(得分:2)
是的,您可以使用$filter
进行搜索。
但如果服务基于OData V3,那么Uri应该是:
http://services.odata.org/Northwind/Northwind.svc/Customers?$filter=substringof('Alfreds', CompanyName)
如果服务基于OData V4,则Uri应为:
http://host/service/Customers?$filter=contains(CompanyName,'Alfreds')
顺便说一下,您可以访问http://www.saferproducts.gov/webapi/Cpsc.Cpsrms.Web.Api.svc/$metadata
识别服务版本。如果页面顶部有“m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0"
”,则该服务应基于OData V3。如果没有这样的线路,那么该服务应该基于OData V4。
答案 1 :(得分:0)
您可以将$filter
查询选项与OData协议中定义的Contains
函数结合使用。
http://host/service/Customers?$filter=contains(CompanyName,'Alfreds')
(OData文档示例:所有公司名称包含'Alfreds'的客户)
关注OData documentation以获取更多详情。