使用GoDaddy API创建A记录时遇MISSING_NAME_SERVER错误求助
问题排查与解决方案
核心错误原因
你遇到的MISSING_NAME_SERVER错误,本质是因为GoDaddy的PUT /v1/domains/{domain}/records接口是全量替换DNS记录集,而非追加记录。
当你只发送A记录的请求体时,接口会把该域名下所有现有DNS记录(包括注册时设置的NS记录)全部替换成你发送的内容。而GoDaddy强制要求域名必须至少配置2个NS记录才能正常解析,因此系统触发了422校验错误。
解决方案
根据你的需求,有两种处理方式:
改用PATCH接口实现增量更新
如果你只是想添加或修改单条A记录,不要用PUT,改用PATCH /v1/domains/{domain}/records接口。PATCH接口支持增量修改,不需要覆盖所有现有记录,请求体只需包含你要修改的A记录即可,不会影响已存在的NS记录。若坚持使用PUT,需包含完整记录集
如果你必须用PUT接口,需要在请求体中包含该域名下所有现有的DNS记录(包括全部NS记录),再加上你要添加的A记录,确保NS记录数量不少于2个。你可以先调用GET /v1/domains/{domain}/records接口获取当前所有记录,再在这个基础上添加你的A记录,然后用PUT提交完整的记录数组。
请求体的额外问题修正
你的请求体里还存在两个需要修正的问题:
- 重复的
"type": "A"字段,虽然JSON解析通常会取最后一个值,但冗余字段可能引发不可预期的问题,建议删除其中一个。 - A记录不需要
port、protocol、priority、weight这些参数,这些是SRV、MX等特定记录类型的字段,多余参数可能干扰接口解析,建议删除。
修正后的A记录请求体示例:
[ { "data": "<my IP address>", "name": "", "ttl": 3600, "type": "A" } ]
内容的提问来源于stack exchange,提问作者brentonstrine
相关产品推荐
相关产品推荐

