我最近开始了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转换更好?
我正在寻找您的指导/回复。
谢谢!
答案 0 :(得分:0)
在RESTful方法中,URI应该代表一种资源。这意味着与资源相关的参数应放在路径中或作为queryparam。标头参数是放置平台/组织范围和标准化内容的合适位置(与单个API不相关,而与全局/通用(即request_id)相关)。将安全性相关的内容放入标头中也是一种好习惯,因为ULR通常记录在很多地方,存储在用户历史记录中并转发HTTP引用标头。
关于版本控制-我建议在URL中保留主要(并且只有主要)版本。这种方法是清晰/可读的,并在实践中得到了证明。