2017-09-14 64 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(或你想要的)