在Saferproducts.gov API中按关键词搜索?

时间:2014-03-06 13:26:01

标签: odata

我正在尝试根据来自safeproducts api(http://www.saferproducts.gov/webapi/Cpsc.Cpsrms.Web.Api.svc)的关键字搜索报告,就像他们在http://www.saferproducts.gov/Search/default.aspx

网站上提供搜索功能一样

但我找不到任何方法来搜索它。他们的API是OData格式,我以前从未使用过,所以我猜测它可能是我缺乏如何查询基于OData的服务的知识,或者他们只是不在他们的Web服务中提供任何搜索方法。

任何人都能确认我的理解是否正确?

谢谢, 汗

2 个答案:

答案 0 :(得分:2)

是的,您可以使用$filter进行搜索。 但如果服务基于OData V3,那么Uri应该是:

http://services.odata.org/Northwind/Northwind.svc/Customers?$filter=substringof('Alfreds', CompanyName) 

您可以参考OData V3 URL Conventions

如果服务基于OData V4,则Uri应为:

http://host/service/Customers?$filter=contains(CompanyName,'Alfreds')

您可以参考OData V4 URL Conventions

顺便说一下,您可以访问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以获取更多详情。