2014-03-06 155 views
1

我试图搜索关键字的从safeproducts API(http://www.saferproducts.gov/webapi/Cpsc.Cpsrms.Web.Api.svc),就像他们在http://www.saferproducts.gov/Search/default.aspx按关键字搜索Saferproducts.gov API?

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

任何一个PLZ能证实我的理解是正确的吗?

感谢, 汗

回答

0

可以使用$filter查询选项在OData协议中定义的Contains功能组合。

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

(实施例从OData的文档:所有的客户与包含 '艾尔弗雷德' 一公司名称)

关注的OData documentation进一步的细节。

2

是的,您可以使用$filter进行搜索。 但是,如果该服务是基于OData的V3,开放的我们应该是:

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

您可以参考OData V3 URL Conventions

如果该服务是基于OData的V4,开放的我们应该是:

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。