Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RESTful API获取方法参数_Api_Rest - Fatal编程技术网

RESTful API获取方法参数

RESTful API获取方法参数,api,rest,Api,Rest,我们正在创建一个RESTful API(apache服务器上的PHP),它将与Android应用程序通信。我是新来的,所以如果我的问题是愚蠢的,请原谅。 我想从api请求数据,所以我需要在请求中使用GET方法,并考虑语义。我必须发送一些附加数据,以指定我请求的数据。在GET请求中,我无法发送表单数据字段,因此应如何附加数据 使用POST(但这不是语义) 请求标题:POSThttp://example.com/api/v1/serials 请求数据:日期自=2013.01.01和日期至=2014.

我们正在创建一个RESTful API(apache服务器上的PHP),它将与Android应用程序通信。我是新来的,所以如果我的问题是愚蠢的,请原谅。 我想从api请求数据,所以我需要在请求中使用GET方法,并考虑语义。我必须发送一些附加数据,以指定我请求的数据。在GET请求中,我无法发送表单数据字段,因此应如何附加数据

使用POST(但这不是语义) 请求标题:POST
http://example.com/api/v1/serials

请求数据:日期自=2013.01.01和日期至=2014.01.01和用户ID=112,is自=0和开始自=afx00

使用GET并添加url参数(我不知道这在restapi中是否是一个好的实践) 请求头:获取
http://example.com/api/v1/serials?date_from=2013.01.01&date_to=2014.01.01&userid=112&is_in=0&starts_with=afx00

或者在GET中创建没有url参数的格式良好的URI(对此也不确定) 请求头:获取
http://example.com/api/v1/serials/date_from/2013.01.01/date_to/2014.01.01/userid/112/is_in/0/starts_with/afx00


哪一个最适合RESTful API体系结构?我应该使用哪一种?为什么?或者我想要的东西还有其他选择吗?

可以使用Bot-GET方法。这是你的选择。但我更喜欢使用url参数。更简单。

可以使用Bot-GET方法。这是你的选择。但我更喜欢使用url参数。更简单。

毫无疑问,使用URL参数是最好的。它允许消费者使用他们选择的过滤器查询序列。您的API应该支持仅基于用户ID返回结果,或基于日期范围返回结果,或同时基于两者返回结果。或其他有意义的输入组合


在资源路径中嵌入筛选器的键/值对是一种反模式。很难理解每个路径元素的含义,您需要扭曲路由引擎以适应其他筛选条件。在选择要使用的筛选条件方面,它也没有提供灵活性——实际上,您需要为每个筛选组合构造多个资源路径。还有对每一对进行排序的管理(使用URL参数,排序并不重要)。可能有更多的理由避免这样做,但这些是第一个想到的。

毫无疑问,使用URL参数是最好的。它允许消费者使用他们选择的过滤器查询序列。您的API应该支持仅基于用户ID返回结果,或基于日期范围返回结果,或同时基于两者返回结果。或其他有意义的输入组合


在资源路径中嵌入筛选器的键/值对是一种反模式。很难理解每个路径元素的含义,您需要扭曲路由引擎以适应其他筛选条件。在选择要使用的筛选条件方面,它也没有提供灵活性——实际上,您需要为每个筛选组合构造多个资源路径。还有对每一对进行排序的管理(使用URL参数,排序并不重要)。可能有更多的理由避免这样做,但这些是我第一次想到的。

Thnak你的答案对我来说也是最可爱的解决方案。还有另一个问题:我可以在带有DELETE方法的请求中使用url参数吗?或者我应该用它发送表单数据吗?不,你只能在get请求中使用url参数。在删除方法的情况下,您需要FormParamThnak您的答案,这也是我最喜欢的解决方案。还有另一个问题:我可以在带有DELETE方法的请求中使用url参数吗?或者我应该用它发送表单数据吗?不,你只能在get请求中使用url参数。如果是DELETE方法,则需要FormParam