Как вызвать SOAP API, ожидающий вложенные параметры в python - PullRequest
0 голосов
/ 30 ноября 2018

Я работаю с dyn soap API "https://api2.dynect.net/wsdl/current/Dynect.wsdl'"

В документации было написано, что для получения любой записи я могу вызвать метод" GetAnyRecord ", и он ожидает запрос следующим образом

{
    'fqdn' => 'www.example.com',
    'token' => 'asdlkfjasl23j4879afa',
    'zone' => 'example.com',
}

и следующий код отлично подходит для этого.

 # Get all records from the root node of a zone
response = client.service.GetANYRecords(
    token = token,
    zone = ZONE,
    fqdn = ZONE,
    fault_incompat = 1,
)

Теперь, чтобы добавить документацию CNAME, говорится, что вызовите метод "CreateCNAMERecord", и он ожидает запрос следующим образом.

{
    'fqdn' => 'www.example.com',
    'rdata' => {
        'cname' => 'example.com',
    },
    'token' => 'asdlkfjasl23j4879afa',
    'ttl' => '3600',
    'zone' => 'example.com',
}

Я написал код на Python:

addstatus = client.service.CreateCNAMERecord(
    fqdn = "testapi1.pikachu.com",
    ttl = "3600",
    zone = ZONE,
    rdata = (
        {'cname':"testapi1.pikachu.com"}
    ),
    token = token,

)

Но он не работает и не работает со следующей ошибкой.

suds.WebFault: Server raised fault: 'Processing Error. See detail section for a structured problem description.'

Может кто-нибудь сказать мне, как структурировать Rdata внутрикод Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...