首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >REST API:自定义HTTP标头与URL参数

REST API:自定义HTTP标头与URL参数
EN

Stack Overflow用户
提问于 2012-02-07 07:49:49
回答 5查看 104K关注 0票数 107

什么时候在REST API的请求部分使用定制的HTTP头?

示例:

你是否曾经使用过

GET /orders/view 
(custom HTTP header) CLIENT_ID: 23

而不是

GET /orders/view/client_id/23 or 
GET /orders/view/?client_id=23
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-07 08:12:56

URL指示资源本身。“客户端”是可以操作的资源,因此应该是基本url:/orders/view/client/23的一部分。

参数只是用来参数化对资源的访问。这一点在帖子和搜索中尤其有用:/orders/find?q=blahblah&sort=foo。参数和子资源之间只有一条线:/orders/view/client/23/active versus /orders/view/client/23?show=active。我建议使用子资源样式并保留搜索参数。

由于每个端点都有一个状态转移(用来修改助记符),所以自定义标头应该只用于不涉及资源名称( url)、资源状态(正文)或直接影响资源的参数( REpresents )的内容。这就留下了关于自定义标头请求的真实元数据。

HTTP有非常广泛的标头可供选择,几乎涵盖了您需要的所有内容。我所见过的自定义标头出现在代表用户操作的系统到系统请求中。代理系统将验证用户并将"X-User: userid“添加到标头,并使用系统凭据命中端点。接收系统验证系统凭证是否被授权代表用户执行操作,然后验证用户是否被授权执行该操作。

票数 139
EN

Stack Overflow用户

发布于 2012-02-07 07:56:17

只有在没有其他方式通过标准或约定传递信息时,我才会使用自定义标头。Darren102解释了传递该值的典型方法。你的Api会更友好,使用典型的模式和自定义的头,这并不是说你没有理由使用它们,只是说它们应该是最后的手段,HTTP规范还没有处理的东西。

票数 7
EN

Stack Overflow用户

发布于 2012-02-07 07:52:54

REST没有标准,但是可以接受的方式是

GET /orders/view/23

不使用定制的头,因此23之后的视图假定是id,因此您将有一个接受id的函数,从而只产生该信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9169081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档