我正在實現一個包含/feed
請求的HTTP REST API。該請求返回用戶的新聞提要。Flask:使用數組參數實現HTTP GET
該請求帶有幾個參數,包括userId
,追隨者列表,startTime
和maxItems
。
在服務器端(Python和Flask)實現它的最簡單方法是添加一個JSON負載,從中我可以讀取參數。
唉,將有效載荷添加到GET
請求is not a good idea,並且它不受許多客戶端庫支持。
我的選擇:
- 製作
/feed
一個POST
請求。這很醜陋,因爲POST
不應該用來從服務器請求信息。 - 拆分
/feed
致電/updateFollowers
(POST
)和/feed
(GET
)。這會浪費時間,因爲GET
呼叫只能在POST
呼叫後進行。
這兩個選項看起來都不對。有沒有什麼標準方法可以用一堆複雜的參數進行類似GET
的調用?
REST實際上並沒有規則,因爲您可能已經意識到了,但我想與您分享我的看法:將'請求類型'放在像'/ getFeed'這樣的資源中也很難看,我只是堅持'/ feed'。除此之外,不要將用戶作爲參數傳遞給'/ feed',最好是像'/ users//feed'一樣構建url,但這取決於您的其他服務的實現 –
@TimCastelijns 'getFeed'是一個錯誤 - 它確實是'/ feed'。除此之外,對於URL參數,'userId'可以 - 但是如何在URL中傳遞數組? –
在這種情況下使用POST可能不是一個壞主意。見http://stackoverflow.com/questions/5020704/how-to-design-restful-search-filtering –