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