编辑:我正在寻求有关 GoDaddy API 的帮助以及如何形成请求以便我可以删除记录。我可以替换记录并添加新记录,当然还可以读取记录。我不需要帮助构建模块。只是在弄清楚使用 API 在 GoDaddy 上进行删除的 REST API 部分时遇到问题。
我发现了这个:使用 Powershell 更新 GoDaddy API 上的 DNS 记录时出现错误 422
这给了我一个好的开始。我已经编写了许多函数来创建或修改各种不同类型的记录。一路走来,我学到了很多东西。到目前为止,我一直无法弄清楚的是如何使用 API 删除不再需要的现有记录。
我发现,如果我有一个相同名称和类型的现有记录并尝试创建一个新记录,它将用新值替换现有记录。如果它只是一个 A 记录并且这是你的愿望,那就太好了。但如果是 MX 或 NS 记录,那可能不是预期的结果。我正在研究辅助函数,以确保在发布到我的模块之前不会破坏现有记录。
我对阅读 API 文档和使用 REST API 比较陌生,所以我可能只是缺少一些基本的东西,但是如果有人可以为我提供一些关于如何配置我的调用的指导,以便我可以清理不再需要的记录。
我在正确格式化 SRV 记录时也遇到了一些问题,以便在我拨打电话时不会出错。我不确定我的问题出在哪里,并且在协议、服务等的允许/预期值的文档中没有看到任何内容。
这是我正在调用的代码的摘录:
try{
$ret = Invoke-WebRequest https://api.godaddy.com/v1/domains/domain/records/$type/$alias -method put -headers $headers -Body $json -ContentType "application/json"
if ($ret.StatusCode -eq 200) { Write-Verbose -Message "Success!" }
else { Write-Warning -Message "ERROR" }
} catch {
$result = $_.Exception.Response.GetResponseStream()
$reader = New-Object System.IO.StreamReader($result)
$reader.BaseStream.Position = 0
$reader.DiscardBufferedData()
$responseBody = $reader.ReadToEnd();
$responseBody = $responseBody | ConvertFrom-Json | Format-Custom | Out-String
Write-Warning -Message "ERROR: $responseBody"
}
您会认出这个代码块,因为它在很大程度上是从上述帖子中完整获取的。我将 $type 作为有效的记录类型(A、CNAME 等)传入。$alias 是现有记录的名称。$headers 是格式正确的标头,具有有效的密钥/秘密对(我能够获取和放置其他记录)。我曾尝试完全省略正文以删除一个值,但失败了。我尝试使用 JSON 空集 ([], [{}]) 来处理正文,并在 JSON 中传递没有值的数据和 TTL 值。我无法成功进行查询。我正在测试以下内容:
Invoke-WebRequest "https://api.godaddy.com/v1/domains/mydomain/records/A/test2" -method put -headers $header -ContentType "application/json" -Body '[{}]'
任何我没有找到的文档指导或指针将不胜感激。