请求结构和签名机制
如果现有的SDK无法满足您的业务场景,您需要自行封装HTTP请求。
请求封装步骤
步骤一:确定云产品OpenAPI风格
不同风格的OpenAPI,封装 HTTP 请求的方法也会存在差异,需要通过阅读云产品OpenAPI的文档,确定是 RPC 风格还是 ROA 风格。详情请参见OpenAPI 风格。
步骤二:构造请求体&签名
不同风格的OpenAPI接口,构造的请求体存在差异,且需要对请求进行签名操作,请参看最新版本签名机制V3版本请求体&签名机制。
步骤三:处理返回数据
如果您明确知晓返回值的内容,可将返回数据转化为已经定义好的对象,否则只能进行返回值泛化处理。
步骤四:异常捕获及重试
由于网络、传参等问题,可能会出现请求异常的情况,需要做好异常捕获和重试。
为什么要对请求进行签名
对HTTP请求进行签名是为了保护云服务免受恶意请求的攻击以及提前拦截无效请求。签名是通过在请求中添加一些特殊的信息来实现的,这些信息包括密钥、时间戳、随机数等。
通过对HTTP请求进行签名,可以实现以下目的:
防止伪造请求:签名可以帮助OpenAPI网关识别请求是否来自合法的客户端,防止非法请求进入系统。
防止重放攻击:签名包含时间戳和随机数等信息,可以避免请求被重放,确保每个请求只被执行一次。
防止请求篡改:签名包含密钥信息,可以确保请求在传输过程中没有被篡改或者伪造。
支持审计:签名可以记录请求的来源信息和时间戳等信息,方便服务提供商对系统进行审计和追踪。