全部产品
云市场

DNS API快速入门

更新时间:2019-07-10 19:03:58

本文为您演示,如何通过通过阿里云CLI、OpenAPI Explorer和阿里云SDK等开发者工具调用DNS API

使用阿里云CLI调用API示例

前提条件

本文调用API的工具为阿里云CLI,请确保您已 安装 和 配置了阿里云CLI。

操作方法

本示例通过阿里云CLI调用API,完成添加解析记录(AddDomainRecord)、修改解析记录(UpdateDomainRecord)、获取解析记录列表(DescribeDomainRecords)、获取子域名解析记录列表(DescribeSubDomainRecords)、的任务。

调用API前,请根据API文档了解使用说明,并查询必需的请求参数。调用API报错时,您可以在相应API文档中获取排查建议。

1 . 使用 AddDomainRecord 添加解析记录 。

添加记录

2 . 通过 UpdateDomainRecord 修改解析记录。示例将主机记录从apitest3修改为apitest4.

修改解析记录

3 . 通过 DescribeDomainRecords 获取ddnstest.top的所有解析记录列表。

获取解析记录列表

4 . 通过 DescribeSubDomainRecords 获取子域名apitest.dns-example.com 的所有解析记录列表。
子域名记录列表

5 . 通过 DescribeDomainRecordInfo 获取子域名的解析记录信息。

解析记录信息

使用OpenAPI Explorer调用API示例

本示例通过阿里云 OpenAPI Explorer,完成添加解析记录(AddDomainRecord)的任务。更多有关OpenAPI Explorer的详情,请参阅 什么是OpenAPI Explorer

云解析DNS 调用TOP5的接口

1 . 通过 AddDomainRecord 根据传入参数添加解析记录。

2 . 通过 UpdateDomainRecord 根据传入参数修改解析记录。

3 . 通过 DescribeDomainRecords 根据传入参数获取指定主域名的所有解析记录列表

4 . 通过 DescribeSubDomainRecords 根据传入参数获取某个固定子域名的所有解析记录列表。

5 . 通过 DescribeDomainRecordInfo 根据传入参数获取某个固定子域名下的解析记录信息。

下面是 AddDomainRecord 的调用测试

发起调用


调用创建的记录

使用Java SDK调用API示例

本示例通过Java SDK,完成添加解析记录(AddDomainRecord)的任务。关于如何配置DNS SDK,请参阅 SDK安装 文档。

  1. import com.aliyuncs.DefaultAcsClient;
  2. import com.aliyuncs.IAcsClient;
  3. import com.aliyuncs.exceptions.ClientException;
  4. import com.aliyuncs.exceptions.ServerException;
  5. import com.aliyuncs.profile.DefaultProfile;
  6. import com.google.gson.Gson;
  7. import java.util.*;
  8. import com.aliyuncs.alidns.model.v20150109.*;
  9. public class AddDomainRecord {
  10. public static void main(String[] args) {
  11. DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>");
  12. IAcsClient client = new DefaultAcsClient(profile);
  13. AddDomainRecordRequest request = new AddDomainRecordRequest();
  14. request.setValue("3.0.3.0");
  15. request.setType("A");
  16. request.setRR("apitest");
  17. request.setDomainName("dns-example.com");
  18. try {
  19. AddDomainRecordResponse response = client.getAcsResponse(request);
  20. System.out.println(new Gson().toJson(response));
  21. } catch (ServerException e) {
  22. e.printStackTrace();
  23. } catch (ClientException e) {
  24. System.out.println("ErrCode:" + e.getErrCode());
  25. System.out.println("ErrMsg:" + e.getErrMsg());
  26. System.out.println("RequestId:" + e.getRequestId());
  27. }
  28. }
  29. }


使用Node.js调用API示例

本示例通过Node.js SDK,完成添加解析记录(AddDomainRecord)的任务。

  1. const Core = require('@alicloud/pop-core');
  2. var client = new Core({
  3. accessKeyId: '<accessKeyId>',
  4. accessKeySecret: '<accessSecret>',
  5. endpoint: 'https://alidns.aliyuncs.com',
  6. apiVersion: '2015-01-09'
  7. });
  8. var params = {
  9. "DomainName": "dns-example.com",
  10. "RR": "apitest1",
  11. "Type": "A",
  12. "Value": "3.0.3.0"
  13. }
  14. var requestOption = {
  15. method: 'POST'
  16. };
  17. client.request('AddDomainRecord', params, requestOption).then((result) => {
  18. console.log(JSON.stringify(result));
  19. }, (ex) => {
  20. console.log(ex);
  21. })


使用GO调用API示例

本示例通过GO SDK,完成添加解析记录(AddDomainRecord)的任务。

  1. package main
  2. import (
  3. "fmt"
  4. "github.com/aliyun/alibaba-cloud-sdk-go/services/alidns"
  5. )
  6. func main() {
  7. client, err := alidns.NewClientWithAccessKey("cn-hangzhou", "<accessKeyId>", "<accessSecret>")
  8. request := alidns.CreateAddDomainRecordRequest()
  9. request.Scheme = "https"
  10. request.Value = "3.0.3.0"
  11. request.Type = "A"
  12. request.RR = "apitest1"
  13. request.DomainName = "dns-example.com"
  14. response, err := client.AddDomainRecord(request)
  15. if err != nil {
  16. fmt.Print(err.Error())
  17. }
  18. fmt.Printf("response is %#v\n", response)
  19. }


使用PHP调用API示例

本示例通过PHP SDK,完成添加解析记录(AddDomainRecord)的任务。

  1. <?php
  2. use AlibabaCloud\Client\AlibabaCloud;
  3. use AlibabaCloud\Client\Exception\ClientException;
  4. use AlibabaCloud\Client\Exception\ServerException;
  5. // Download:https://github.com/aliyun/openapi-sdk-php
  6. // Usage:https://github.com/aliyun/openapi-sdk-php/blob/master/README.md
  7. AlibabaCloud::accessKeyClient('<accessKeyId>', '<accessSecret>')
  8. ->regionId('cn-hangzhou') // replace regionId as you need
  9. ->asDefaultClient();
  10. try {
  11. $result = AlibabaCloud::rpc()
  12. ->product('Alidns')
  13. // ->scheme('https') // https | http
  14. ->version('2015-01-09')
  15. ->action('AddDomainRecord')
  16. ->method('POST')
  17. ->options([
  18. 'query' => [
  19. 'DomainName' => "dns-example.com",
  20. 'RR' => "apitest1",
  21. 'Type' => "A",
  22. 'Value' => "3.0.3.0",
  23. ],
  24. ])
  25. ->request();
  26. print_r($result->toArray());
  27. } catch (ClientException $e) {
  28. echo $e->getErrorMessage() . PHP_EOL;
  29. } catch (ServerException $e) {
  30. echo $e->getErrorMessage() . PHP_EOL;
  31. }


使用Python调用API示例

本示例通过Python SDK,完成添加解析记录(AddDomainRecord)的任务。

  1. #!/usr/bin/env python
  2. #coding=utf-8
  3. from aliyunsdkcore.client import AcsClient
  4. from aliyunsdkcore.acs_exception.exceptions import ClientException
  5. from aliyunsdkcore.acs_exception.exceptions import ServerException
  6. from aliyunsdkalidns.request.v20150109.AddDomainRecordRequest import AddDomainRecordRequest
  7. client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-hangzhou')
  8. request = AddDomainRecordRequest()
  9. request.set_accept_format('json')
  10. request.set_Value("3.0.3.0")
  11. request.set_Type("A")
  12. request.set_RR("apitest1")
  13. request.set_DomainName("dns-example.com")
  14. response = client.do_action_with_exception(request)
  15. # python2: print(response)
  16. print(str(response, encoding='utf-8'))


使用.net调用API示例

本示例通过.net SDK,完成添加解析记录(AddDomainRecord)的任务。

  1. using System;
  2. using System.Collections.Generic;
  3. using Aliyun.Acs.Core;
  4. using Aliyun.Acs.Core.Exceptions;
  5. using Aliyun.Acs.Core.Profile;
  6. using Aliyun.Acs.Alidns.Model.V20150109;
  7. namespace AlidnsDemo
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>");
  14. DefaultAcsClient client = new DefaultAcsClient(profile);
  15. var request = new AddDomainRecordRequest();
  16. request.Value = "3.0.3.0";
  17. request.Type = "A";
  18. request.RR = "apitest1";
  19. request.DomainName = "dns-example.com";
  20. try {
  21. var response = client.GetAcsResponse(request);
  22. Console.WriteLine(System.Text.Encoding.Default.GetString(response.HttpResponse.Content));
  23. }
  24. catch (ServerException e)
  25. {
  26. Console.WriteLine(e);
  27. }
  28. catch (ClientException e)
  29. {
  30. Console.WriteLine(e);
  31. }
  32. }
  33. }
  34. }


使用Ruby调用API示例

本示例通过Ruby SDK,完成添加解析记录(AddDomainRecord)的任务。

  1. # gem install aliyunsdkcore
  2. require 'aliyunsdkcore'
  3. client = RPCClient.new(
  4. access_key_id: '<accessKeyId>',
  5. access_key_secret: '<accessSecret>',
  6. endpoint: 'https://alidns.aliyuncs.com',
  7. api_version: '2015-01-09'
  8. )
  9. response = client.request(
  10. action: 'AddDomainRecord',
  11. params: {
  12. "DomainName": "dns-example.com",
  13. "RR": "apitest1",
  14. "Type": "A",
  15. "Value": "3.0.3.0"
  16. },
  17. opts: {
  18. method: 'POST'
  19. }
  20. )
  21. print response