2014-03-06 139 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。