Python 2.7 删除记录Libcloud(godaddyapi)

Python 2.7 删除记录Libcloud(godaddyapi),python-2.7,libcloud,Python 2.7,Libcloud,我尝试为Record实现delete方法,但这是我第一次使用python和此api。GoDaddy api没有delete Record方法,因此此功能未在驱动程序中公开。 驱动程序可以提供“在区域中替换记录”方法,该方法允许您获取当前记录列表,然后设置新列表减去要删除的记录。但是该功能没有实现,而且风险很大。GoDaddy API没有删除记录的方法,因此该功能没有在驱动程序中公开。 驱动程序可以提供“在区域中替换记录”方法,该方法允许您获取当前记录列表,然后设置新列表减去要删除的记录。但该

我尝试为Record实现delete方法,但这是我第一次使用python和此api。

GoDaddy api没有delete Record方法,因此此功能未在驱动程序中公开。


驱动程序可以提供“在区域中替换记录”方法,该方法允许您获取当前记录列表,然后设置新列表减去要删除的记录。但是该功能没有实现,而且风险很大。

GoDaddy API没有删除记录的方法,因此该功能没有在驱动程序中公开。

驱动程序可以提供“在区域中替换记录”方法,该方法允许您获取当前记录列表,然后设置新列表减去要删除的记录。但该功能尚未实现,而且风险很大。

首先, 向发送GET请求https://api.godaddy.com/v1/domains/{DOMAIN}/记录

然后,枚举API响应JSON数组的所有记录,并通过删除需要删除的记录来准备新数据

API响应样本

[
    {
        "data": "192.168.1.1",
        "name": "@",
        "ttl": 600,
        "type": "A"
    },
    {
        "data": "ns1.example.com",
        "name": "@",
        "ttl": 3600,
        "type": "NS"
    },
    {
        "data": "@",
        "name": "www",
        "ttl": 3600,
        "type": "CNAME"
    },
    {
        "data": "mail.example.com",
        "name": "@",
        "ttl": 3600,
        "priority": 1,
        "type": "MX"
    }
]
删除记录样本后的新数据

[
    {
        "data": "192.168.1.1",
        "name": "@",
        "ttl": 600,
        "type": "A"
    },
    {
        "data": "ns1.example.com",
        "name": "@",
        "ttl": 3600,
        "type": "NS"
    },
    {
        "data": "@",
        "name": "www",
        "ttl": 3600,
        "type": "CNAME"
    }
]
现在,, 将PUT请求发送到https://api.godaddy.com/v1/domains/{DOMAIN}/包含新数据的记录

最重要的是如何识别上述数组中需要删除的记录。如果您有良好的编程技能,这将不是一项困难的任务。

首先, 向发送GET请求https://api.godaddy.com/v1/domains/{DOMAIN}/记录

然后,枚举API响应JSON数组的所有记录,并通过删除需要删除的记录来准备新数据

API响应样本

[
    {
        "data": "192.168.1.1",
        "name": "@",
        "ttl": 600,
        "type": "A"
    },
    {
        "data": "ns1.example.com",
        "name": "@",
        "ttl": 3600,
        "type": "NS"
    },
    {
        "data": "@",
        "name": "www",
        "ttl": 3600,
        "type": "CNAME"
    },
    {
        "data": "mail.example.com",
        "name": "@",
        "ttl": 3600,
        "priority": 1,
        "type": "MX"
    }
]
删除记录样本后的新数据

[
    {
        "data": "192.168.1.1",
        "name": "@",
        "ttl": 600,
        "type": "A"
    },
    {
        "data": "ns1.example.com",
        "name": "@",
        "ttl": 3600,
        "type": "NS"
    },
    {
        "data": "@",
        "name": "www",
        "ttl": 3600,
        "type": "CNAME"
    }
]
现在,, 将PUT请求发送到https://api.godaddy.com/v1/domains/{DOMAIN}/包含新数据的记录


最重要的是如何识别上述数组中需要删除的记录。如果你有很好的编程技能,这将不是一项困难的任务。

我设法以一种黑客的方式解决了这一问题-我们有一大堆记录要删除,手动删除似乎很奇怪,因此我在Chrome开发者控制台中添加了一个Javascript,在DNS管理页面上运行经过身份验证的会话:

function deleteGoDaddyRecords(recordId) {
        $.ajax({
        url: 'https://dcc.godaddy.com/api/v3/domains/<YOUR-DOMAIN.com>/records?recordId='+recordId,
        type: 'DELETE',
        success: function(result) {
            console.log(result)
        }
    });
}
这让我可以使用UI在您请求删除记录时调用的相同调用

您唯一需要提供的是AttributeUid,它在公共API中不可用,但在前端API中:

所以我设法创建了一个脚本,它将生成一系列

deleteGoDaddyRecords('<RECORD-UUID>');
deleteGoDaddyRecords('<RECORD-UUID>');
将生成的脚本复制并粘贴到开发者控制台中,这就解决了目前的问题


我希望GoDaddy将来会在他们的API中添加一个公共删除端点:

我设法以一种黑客的方式解决了这个问题-我们有一大堆记录要删除,手动删除看起来很奇怪,所以我在Chrome开发者控制台中添加了一个Javascript,在DNS管理页面上运行经过身份验证的会话:

function deleteGoDaddyRecords(recordId) {
        $.ajax({
        url: 'https://dcc.godaddy.com/api/v3/domains/<YOUR-DOMAIN.com>/records?recordId='+recordId,
        type: 'DELETE',
        success: function(result) {
            console.log(result)
        }
    });
}
这让我可以使用UI在您请求删除记录时调用的相同调用

您唯一需要提供的是AttributeUid,它在公共API中不可用,但在前端API中:

所以我设法创建了一个脚本,它将生成一系列

deleteGoDaddyRecords('<RECORD-UUID>');
deleteGoDaddyRecords('<RECORD-UUID>');
将生成的脚本复制并粘贴到开发者控制台中,这就解决了目前的问题


我希望GoDaddy将来会在他们的API中添加一个公共删除端点:

您可以通过将记录类型放在URL路径中使搜索和替换更具选择性,例如。https://api.godaddy.com/v1/domains/{域}/记录/A您可以通过将记录类型放入URL路径,使搜索和替换更具选择性,例如:。https://api.godaddy.com/v1/domains/{DOMAIN}/records/AThis似乎正在使用api v3,截至2020年9月的文档仍在v1上。仅记录了v2中的3个调用。我想这是可以使用的,但似乎不太可靠,因为它可能会改变。这似乎是在使用api v3,截至2020年9月的文档仍在v1上。仅记录了v2中的3个调用。我想这是可以使用的,但似乎不太可靠,因为它可能会改变。