2010-04-14 276 views
17

我正在设计RESTful Api,并希望在设计调用者想要基于多个搜索参数查询记录的API时提供一些建议。将多个查询参数传递给restful api的最佳方式是什么?

我只看到使用一个参数的宁静apis。

我应该怎么做?

例如如果我为联系人列表创建了一个restful api,我将如何格式化一个返回所有联系人姓名的电话== bob & surname == smith?

我想它应该是一个GET,因为我正在检索?

我唯一的想法是:

http://api.myapi.com/contacts/firstname/bob&surname=smith

但是,这看起来不正确;-(

请咨询

而且,做任何的PHP框架的支持这一点。?如symfony,konstrukt等

+0

是的,用symfony你可以很容易地创建看起来像'/ contacts/bob/smith'的URL。 – 2010-04-14 19:57:08

+0

这会迫使我只允许第二个参数是姓氏吗? – DEzra 2010-04-14 20:03:23

回答

22

我认为

http://api.myapi.com/contacts?firstname=bob&surname=smith 

是要走的路,如果您有一组参数,所有参数都是可选的。

+2

我同意;它被称为“查询”字符串 – rojoca 2010-04-14 20:07:07

+0

是的,我喜欢这个。我猜通过查询字符串你的意思是:$ _SERVER ['QUERY_STRING']包含firstname = bob&surname = smith。或者:$ _GET ['firstname']更好 - 不需要解析。 http://ditio.net/2008/06/12/php-query-string/ – DEzra 2010-04-14 21:28:21

+0

你甚至可以通过$ _GET循环来构建查询 – Galen 2010-04-15 18:38:10

相关问题