这个域名注册API接口, 是给搞技术的人用的标准操作入口, 管的事情多得很, 有域名有没有人用可以查一下, 有要注册的, 有要续费的, 有要转手的, 还有要删除的, 这些事儿的全生命周期都能覆盖住。
开发者只需要通过HTTP或者是HTTPS这种网络协议去调用专门的接口地址,就能完成一堆域名的操作活儿。完全不用人工亲自登录网页控制后台去一个个点。
核心接口一览
一般来说, 域名注册这一类应用程序编程接口里面, 它通常会包含下面这些网络地址或者说是接口路径。
域名可用性查询(/domain/availability)
域名注册(/domain/register)
域名续费(/domain/renew)
当需要把域名从一个地方转到另一个地方的时候, 大家会说域名转移, 也就是那个放在括号里面的内容, /domain/transfer。
域名删除(/domain/delete)
提供域名列表以及详细信息的查询功能, 其对应的接口路径为/domain/list和/domain/info。
各端点会统一地返回JSON格式的数据, 这个数据里面包含了HTTP状态码、业务状态码、操作结果, 还包含了一个唯一的request_id, 这样是为了方便日志追踪与问题定位。
标准调用流程
1. 获取认证凭证这个环节, 需要你前往开放平台, 去申请得到AppKey与AppSecret。然后, 在每一次发起请求的时候, 都要在Header里面, 带上HMAC-SHA256签名, 用这种方式来完成任务的鉴权。
2. 组装请求参数: 你需要按照接口文档的要求, 去填写那些必须的字段, 比如说domain、period、registrant这些内容, 然后把它们拼凑起来, 组成一个JSON格式的Body。
3. 发起请求这一步, 要使用POST方法去调用那个目标端点, 客户端建议把超时时间设为30秒。
4. 解析响应: 200表示操作成功, 4xx为参数或权限错误, 5xx为服务端异常, 需记录并告警。
5. 异步确认: 针对转移、批量删除这些操作, 它们是按照异步的方式去执行的, 所以需要不断地去调用查询接口来进行轮询查看, 一直到发现状态变成了“完成”为止。
关键参数说明
接入注意事项
频率限制: 单个应用密钥每秒最多处理50次查询, 如果是批量操作的话, 就必须对请求进行顺序排队, 并且使用令牌桶这种机制来控制限流流速。
幂等性这个概念是这样的, 注册接口本身是支持幂等操作的, 如果用户拿着同样的域名去重复地提交请求, 那么系统这边就不会进行重复扣费的处理了, 并且它会返回一个已经存在的订单号给你。
错误重试: 针对4xx这种类型的错误, 严禁进行自动重试操作;而若是遭遇5xx类的错误信号时, 建议大家使用指数退避的策略来实施重试, 具体的时间间隔可以按照1秒增加到2秒再延伸到4秒这种方式去安排, 整个过程中最多只允许重试3次。
在进行合规校验这个操作之前, 必须先要把注册主体的相关信息给查验清楚。对于那些以.cn以及其他一些后缀结尾的情况, 是有要求的, 需要把注册人的证件类型还有证件号码给提供出来, 同时要拿出营业执照来。
快速对接参考
那些想要一步到位搞定域名注册API功能的程序员们, 可以去看看gname.xin开放平台那边提供的技术说明文档。那个地方的接口规范是遵循前面说到的通用模型的, 除此之外, 还提供了一些额外的功能。
这些额外功能包括支持批量查询关于WHOIS信息, 以及能够实现DNS解析和配置之间的联动作用。这么做的好处是比较明显地降低了在多个系统进行接合时所需要付出的集成工作成本, 从而让事情变得稍微容易一些, 不那么复杂难操作。

