API标头最佳做法

时间:2018-11-12 10:59:28

标签: api

我最近开始了API设计的旅程。 我们正在设计RESTful API。对API标头,API标头的最佳做法,查询参数,GET与POST有什么疑问?

保持标头简洁明了的最佳实践是什么?根据我的分类,标题如下:

• Standard header Parameters : Accept, Accept-Language, Accept-Charset, etc..
    ○ Request Header
    ○ Response Header
• Security Header Parameters    - Parameter names/values related to security
• Custom Header Parameters - Parameter names/values related to application specific
• On demand Header Parameters - For e.g., Parameter names/values related to  CORS,Cache, etc.. 

使用自定义header()是个好主意吗? 版本控制-是否可以保留在URL或标头中? 使用GET时,如果参数包含敏感/安全信息,则不安全地通过URL传递,尤其是在这种情况下,最好使用POST而不是GET,并且所有参数都可以通过正文而不是标头传递。我们在这里有什么缺点吗?

我们很少有REST服务(暴露于表示层)与SOAP服务集成在一起,并且响应从SOAP转换为REST(在显示到UI层时),并且所有自定义标头参数都在SOAP中,因此可以安全保留部分网址。还是在REST中保留自定义标头并进行SOAP REST转换更好?

我正在寻找您的指导/回复。

谢谢!

1 个答案:

答案 0 :(得分:0)

在RESTful方法中,URI应该代表一种资源。这意味着与资源相关的参数应放在路径中或作为queryparam。标头参数是放置平台/组织范围和标准化内容的合适位置(与单个API不相关,而与全局/通用(即request_id)相关)。将安全性相关的内容放入标头中也是一种好习惯,因为ULR通常记录在很多地方,存储在用户历史记录中并转发HTTP引用标头。

关于版本控制-我建议在URL中保留主要(并且只有主要)版本。这种方法是清晰/可读的,并在实践中得到了证明。