使用GoDaddy API添加A记录

时间:2016-07-27 13:51:06

标签: jquery ajax dns godaddy-api

我尝试使用GoDaddy的API将A记录添加到域中,但我在浏览器的控制台中收到了422(不可处理的实体)响应错误。但是,当我在https://developer.godaddy.com/doc#!/_v1_domains/recordAdd/ArrayOfDNSRecord上使用GoDaddy的文档测试请求时,下面的主体出现了404响应错误:

错误回复正文:

{
  "code": "UNKNOWN_DOMAIN",
  "message": "The given domain is not registered, or does not have a zone file",
  "name": "_Class"
}

我尝试添加A记录的域名肯定存在,因此我不知道为什么会返回404错误。我使用GET请求检索属于域的所有A记录没有问题,但是当我尝试运行下面的PATCH请求时,我得到了错误。

GoDaddy的API是否有问题,或者我是如何构建我的请求的?

返回错误的PATCH请求

$.ajax({
  type: 'PATCH',
  url: 'https://api.godaddy.com/v1/domains/{domain}/records',
  data: {
    'records': [{
      'type': 'A',
      'name': 'test',
      'data': '255.255.255.255'
    }]
  },
  headers: {
    'Authorization': 'sso-key {API_KEY}:{API_SECRET}'
  },
  success: function(body) {
    console.log(body);
  }
});

GET请求正常

$.ajax({
  type: 'GET',
  url: 'https://api.godaddy.com/v1/domains/{domain}/records/A',
  headers: {
    'Authorization': 'sso-key {API_KEY}:{API_SECRET}'
  },
  success: function(body) {
    $.each(body, function(i, v) {
      $('body').append('<p>Name: ' + v.name + '<br/>Data: ' + v.data + '</p>');
    });
  }
});

3 个答案:

答案 0 :(得分:4)

我通过浏览器向api.godaddy.com服务器发出jQuery请求,我不确定服务器是否允许PATCH动词出于某种原因。

我测试了这个curl请求,并成功为我的某个域输入了新的A记录。卷曲后我得到了空对象= pal_BK_12-12-2016_1311.sql

我也{}编辑了它,记录在几分钟之后就出现了:

dig

答案 1 :(得分:1)

您还需要指定域名:

$.ajax({
  type: 'PATCH',
  url: 'https://api.godaddy.com/v1/domains/{domain}/records',
  data: {
  'domain': '<domain>',
    'records': [{
       'type': 'A',
       'name': 'test',
       'data': '255.255.255.255'
    }]
  },
  headers: {
    'Authorization': 'sso-key {API_KEY}:{API_SECRET}'
  },
  success: function(body) {
    console.log(body);
  }
});

另请注意,可选的ttl字段必须至少为600。

答案 2 :(得分:0)

我刚刚经历过同样的问题而且我的问题是由他们的“OTE”和“生产”服务相结合引起的。

由于您要向api.godaddy.com而不是api.ote-godaddy.com进行查询,因此您需要使用“生产”密钥和密码,并让您的网站在生产环境中运行,而不是GoDaddy的运行测试环境。