簡體   English   中英

如何為過濾的數據創建REST API

[英]how to create a REST api for filtered data

我已經閱讀了很多書,並且了解到REST API會使用HTTP動詞來映射資源。 例如,當一個教程顯示諸如Employee之類的示例時,這很容易理解。 PUT將是新記錄(如果不存在)或更新; GET將提取所有員工的列表,而GET api.example.com/employee/12將提取ID = 12的Employee的記錄。

但是,例如,我如何映射一個更有用的查詢,例如“讓我獲得薪水低於50.000,在公司工作不到2年且婚姻狀況為單身的所有雇員”? 換句話說,如何設置查詢參數? 添加諸如api.example.com/Employee?salary<50000&years<2&marital-status=single" ?類的參數是否正確api.example.com/Employee?salary<50000&years<2&marital-status=single" ?

理論:

如果將參數添加到查詢中,則它們只是URL的一部分。 URL的形式不告訴您任何有關您的API是否為RESTful的信息。 如果您的API遵循以下描述的約束,則帶有查詢字符串的API會很安靜: http : //en.wikipedia.org/wiki/Representational_state_transfer並且(可選)遵循指導原則

因此,只要您的查詢參數沒有做任何瘋狂的事情(例如隨機更改某些資源的狀態),那么您的API仍然是RESTful的

實踐:

任何明智的REST API都需要“索引”路由的查詢參數。 實際上,LinkedIn的REST API具有查詢參數,這些參數僅從某人的個人資料中選擇字段。 在這種情況下,URL看起來與您的URL完全不同,但是仍然遵守REST的原則。

您的情況:

您的查詢字符串不能包含不等式,只能包含鍵值對。 您需要像“?max-salary = 50000&max-years = 2&marital-status = single”這樣表達。也可以用不同的方式命名“索引”路線:api.example.com/employees(復數)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM