2017-09-14 73 views
0

在搜索查詢中包含相關資源的最佳做法是什麼?REST API過濾和相關資源最佳實踐

我的資源有:

/projects 
/participants 
/questions 
/questionAnswers 

查詢會是這樣的:讓誰是所有參與者:

- between the age of 20 and 40 and, 
- male and, 
- selected answer X of question y 

它會是這樣的

/參與者搜索=性別? :男性,年齡> = 20,年齡< = 40,提問:x,回答:y

這種查詢有更好的還是標準的方法嗎?

+0

就個人而言,我寧願使用應用程序/ x-WWW-形式urlencoded並將其作爲POST發送。這是個人觀點,我可能是錯的。也許這將幫助https://stackoverflow.com/questions/4024271/rest-api-best-practices-where-to-put-parameters –

+0

也許[GraphQL](https://github.com/facebook/graphql)會對你的情況更可行嗎? – Kim

回答

0

您可以使用對象序列化&過濾器。 像:

/與會者過濾= {性別= {男性},年齡= {= {20之間,40}},問題= {X},回答= {Y}}

爲給定的例子有:

  • 性別=男性,女性
  • 年齡=(1 ... 99)OR之間= {開始,結束} OR直到= {結束} OR從= {}開始等 。

在這種情況下,您可以過濾更具體和/或組合。 組合例如:

/participants?filter = {gender = {male,female},age = {21,22,23,from = {40}},question = {x},answer = { Y}}

結果:性別男,女21歲,22,23和40至99(或你想要的)