自定义HTTP DNS

    在接收到的请求Header中,会自动设置以下三个参数:

    • - Unix时间戳,目前是10位
    • Token - 用来校验请求的合法性,算法是 sha1("私钥@Timestamp值") 并转换为16进制的小写字符串;其中私钥值在添加DNS服务商时会自动生成;
    • User-Agent - GoEdge产品名称和版本

    当接收到请求时,通常我们需要校验:

    1. Timestamp值是否已过期,通过时间戳对比检查时间戳是否离现在时间过长,来检查请求是否过期;前提是你的接口所在服务器时间和API节点服务器时间需要一致;
    2. 检查Token值是否合法,通过界面获取的私钥和接收到的时间戳值进行sha1运算,对比接收到的Token是否一致。

    所有请求均以POST方式发送,发送的内容均为JSON格式,类似于:

    1. {
    2. "action": "GetRecords",
    3. "domain": "example.com"
    4. }

    返回的内容除了默认线路动作(DefaultRoute)外,通常都是JSON格式。

    请求:

    1. {
    2. "action": "GetRecords",
    3. "domain": "域名"
    4. }

    其中:

    • domain - 是CDN集群的主域名,类似于 example.com,通常只支持一级域名

    期待返回:

    1. [
    2. {
    3. "id": "记录ID 1",
    4. "name": "记录名",
    5. "type": "记录类型",
    6. "value": "记录值",
    7. "route": "线路代号",
    8. "ttl": "刷新时间"
    9. },
    10. {
    11. "id": "记录ID 2",
    12. ...
    13. },
    14. {
    15. "id": "记录ID 3",
    16. ...
    17. }
    18. ]

    其中:

    • id - 记录的原始ID,即在你使用的DNS系统中记录的ID,是一个字符串,可以为空字符串
    • name - 记录名,不包括域名部分,比如 wwwcdn 等,可能为空
    • type - 记录类型,大写的记录类型,比如 AAAAACNAMETXT
    • value - 记录值,比如A记录的记录值通常是一个IP
    • route - 线路代号,在你使用的DNS系统中的线路代号,是一个字符串,可以为空
    • ttl - 记录在DNS中的刷新时间(也叫存活时间),是一个数字(注意:千万不能填写一个字符串类型的值),可以填写为0

    读取域名支持的线路数据 - GetRoutes

    请求:

    • domain - 是CDN集群的主域名,类似于 example.com,通常只支持一级域名

    期待返回:

    1. {
    2. "name": "线路名1",
    3. "code": "线路代号1"
    4. },
    5. {
    6. "name": "线路名2",
    7. "code": "线路代号2"
    8. },
    9. ...
    10. ]

    其中:

    • name - 线路名,用来在界面上显示线路名称
    • code - 线路代号,用来在其他动作中指定线路

    请求:

    1. {
    2. "domain": "域名",
    3. "name": "记录名",
    4. "recordType": "记录类型"
    5. }

    其中:

    • domain - 是CDN集群的主域名,类似于 example.com,通常只支持一级域名
    • name - 记录名,不包括域名部分,比如 wwwcdn 等,可能为空
    • recordType - 记录类型,大写的记录类型,比如 AAAAACNAMETXT

    期待返回: 如果找到记录则返回对应的记录信息:

    1. {
    2. "id": "记录ID",
    3. "name": "记录名",
    4. "type": "记录类型",
    5. "value": "记录值",
    6. "route": "线路代号",
    7. "ttl": "刷新时间"
    8. }

    其中:

    • id - 记录的原始ID,即在你使用的DNS系统中记录的ID,是一个字符串,可以为空字符串
    • name - 记录名,不包括域名部分,比如 wwwcdn 等,可能为空
    • type - 记录类型,大写的记录类型,比如 AAAAACNAMETXT
    • value - 记录值,比如A记录的记录值通常是一个IP
    • route - 线路代号,在你使用的DNS系统中的线路代号,是一个字符串,可以为空
    • ttl - 记录在DNS中的刷新时间(也叫存活时间),是一个数字(注意:千万不能填写一个字符串类型的值),可以填写为0

    如果没有找到此解析记录,则返回空或者null。

    添加记录 - AddRecord

    请求:

    其中:

    • domain - 是CDN集群的主域名,类似于 example.com,通常只支持一级域名
    • newRecord - 记录相关信息
      • id - 记录的原始ID,即在你使用的DNS系统中记录的ID,是一个字符串,可以为空字符串
      • name - 记录名,不包括域名部分,比如 wwwcdn 等,可能为空
      • type - 记录类型,大写的记录类型,比如 AAAAACNAMETXT
      • value - 记录值,比如A记录的记录值通常是一个IP
      • route - 线路代号,在你使用的DNS系统中的线路代号,是一个字符串,可以为空
      • ttl - 记录在DNS中的刷新时间(也叫存活时间),是一个数字(注意:千万不能填写一个字符串类型的值),可以填写为0

    请求:

    1. {
    2. "action": "UpdateRecord",
    3. "domain": "域名",
    4. "record": {
    5. "id": "记录ID",
    6. "name": "记录名",
    7. "value": "记录值",
    8. "route": "线路代号",
    9. "ttl": "刷新时间"
    10. },
    11. "newRecord": {
    12. "id": "记录ID",
    13. "type": "记录类型",
    14. "value": "记录值",
    15. "route": "线路代号",
    16. "ttl": "刷新时间"
    17. }
    18. }

    其中:

    • domain - 是CDN集群的主域名,类似于 example.com,通常只支持一级域名
    • record - 老记录信息
      • id - 记录的原始ID,即在你使用的DNS系统中记录的ID,是一个字符串,可以为空字符串
      • name - 记录名,不包括域名部分,比如 wwwcdn 等,可能为空
      • type - 记录类型,大写的记录类型,比如 AAAAACNAMETXT
      • value - 记录值,比如A记录的记录值通常是一个IP
      • route - 线路代号,在你使用的DNS系统中的线路代号,是一个字符串,可以为空
      • ttl - 记录在DNS中的刷新时间(也叫存活时间),是一个数字(注意:千万不能填写一个字符串类型的值),可以填写为0
    • newRecord - 新记录相关信息
      • id - 记录的原始ID,即在你使用的DNS系统中记录的ID,是一个字符串,可以为空字符串
      • name - 记录名,不包括域名部分,比如 wwwcdn 等,可能为空
      • type - 记录类型,大写的记录类型,比如 AAAAACNAMETXT
      • value - 记录值,比如A记录的记录值通常是一个IP
      • route - 线路代号,在你使用的DNS系统中的线路代号,是一个字符串,可以为空
      • ttl - 记录在DNS中的刷新时间(也叫存活时间),是一个数字(注意:千万不能填写一个字符串类型的值),可以填写为0

    期待返回: 不处理返回内容。

    删除记录 - DeleteRecord

    请求:

    1. {
    2. "action": "DeleteRecord",
    3. "domain": "域名",
    4. "record": {
    5. "id": "记录ID",
    6. "name": "记录名",
    7. "type": "记录类型",
    8. "value": "记录值",
    9. "route": "线路代号",
    10. "ttl": "刷新时间"
    11. }
    12. }

    其中:

    • domain - 是CDN集群的主域名,类似于 example.com,通常只支持一级域名
    • record - 记录相关信息
      • id - 记录的原始ID,即在你使用的DNS系统中记录的ID,是一个字符串,可以为空字符串
      • name - 记录名,不包括域名部分,比如 wwwcdn 等,可能为空
      • type - 记录类型,大写的记录类型,比如 AAAAACNAMETXT
      • value - 记录值,比如A记录的记录值通常是一个IP
      • route - 线路代号,在你使用的DNS系统中的线路代号,是一个字符串,可以为空
      • ttl - 记录在DNS中的刷新时间(也叫存活时间),是一个数字(注意:千万不能填写一个字符串类型的值),可以填写为0

    期待返回: 不处理返回内容。

    请求:

    1. {
    2. }

    期待返回:

    其中线路代号是一个字符串类型的内容,可以为空字符串。