您何时在REST API的请求部分中使用自定义HTTP标头?
例:
你会用吗?
GET /orders/view
(custom HTTP header) CLIENT_ID: 23
Run Code Online (Sandbox Code Playgroud)
代替
GET /orders/view/client_id/23 or
GET /orders/view/?client_id=23
Run Code Online (Sandbox Code Playgroud)
Nia*_*rva 108
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),资源状态(主体)或参数的事物.影响资源(参数).这留下了关于自定义标头请求的真实元数据.
HTTP具有非常广泛的标题选择,涵盖了您需要的大部分内容.我看到自定义标题出现在系统到系统请求代表用户操作.代理系统将验证用户并向X-User: userid标头添加" "并使用系统凭据来命中端点.接收系统验证系统凭证被授权代表用户行动,然后验证用户是否有权执行该操作.
KJ *_*han 24
使用HTTP 标头进行发送,
指令(读取 JSON 格式的输入)
元数据(谁发出请求)
每个请求发送的通用数据(如身份验证、会话)
使用路径参数来制作,
对资源的具体请求 ( /country/state/city )
他们必须形成一个逻辑层次结构
使用查询参数进行发送,
当没有其他方法按标准或惯例传递信息时,我只会使用自定义标头.Darren102解释了传递该值的典型方法.通过使用自定义标题的典型模式,你的Api会更友好.这并不是说你不会有使用它们的情况,只是它们应该是最后的手段,而且还没有HTTP规范处理过的东西.
小智 5
何时在REST API的请求部分中使用... HTTP标头?
身份验证:GUID,基本身份验证,自定义令牌等,例如, 带有REST api的Guid令牌(而不是用户名/密码)的基本身份验证
如果您参与在PCI-DSS或其他安全规则所覆盖的域之间传递令牌或其他类似身份验证的信息,则您可能还必须埋入参数,因为某些法规明确要求身份验证元素不包含可能被重播的URL(来自浏览器历史记录,代理日志等)。
自定义标题具有以下优点:
| 归档时间: |
|
| 查看次数: |
85217 次 |
| 最近记录: |