![](/img/trans.png)
[英]Angular2 - Symfony3 app how to send session between client and server?
[英]How to send filters and sort information in Angular2?
我正在嘗試使用PrimeNG數據表,它具有一些排序和過濾功能。 我想將搜索/過濾器數據發送到我的靜態API,但是我無法決定如何執行此操作。
數據為:
{
"event": {
"first": 0,
"rows": 10,
"sortField": "isDone",
"sortOrder": 1,
"filters": {
"title": {
"value": "a",
"matchMode": "startsWith"
},
"details": {
"value": "d",
"matchMode": "startsWith"
}
}
}
}
http服務不允許使用GET在RequestBody中發送數據。 我認為使用http post發送數據違反了REST標准。 我發現的解決方案是將數據放入url,但我的同事不接受,他們認為使用http帖子發送更好。
最佳做法是什么? 我應該如何發送數據? 可以通過http帖子發送嗎?
在您的示例中,您正在談論查詢/過濾器參數。 可以通過GET請求發送它們。 通常,如果您嘗試通過REST API檢索資源,則應使用GET而不是POST。
當然,如果您正在構建API,那么您也可以選擇POST。 如果這樣做,您將創建一些過濾器/搜索端點,可以向其發送(一組)過濾器。 這通常是在更復雜的搜索中完成的,在這種情況下,您基本上也將搜索/過濾器也變成了資源。 因此,您將獲得如下所示的端點: /event/filter
,可以在其中發送帶有filter的POST請求
另一種選擇是為通用搜索添加別名,並且仍然使用GET請求。 然后端點可能看起來像這樣:
/event/doneEvents?title=a&details=d&top=10
最后,有多種方法可以解決此問題,對於更復雜的搜索,POST絕對可以接受。 構建API時,更重要的部分是要保持一致,因此對於出現的任何其他復雜搜索,無論選擇如何,都應堅持下去。
但是,您不是第一個提出這樣問題的人,並且想要獲得更多與此相關的背景知識,我想在這里(stackoverflow) , 這里(軟件工程stackexchange)或這里(blog)指向您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.