Репликация конечных точек Postman с запросами vanilla python - PullRequest
0 голосов
/ 23 января 2019

После невозможности заставить работать предоставленный Python API (я просто недостаточно знаю об аутентификации), но я смог использовать предоставленные коллекции Почтальонов для работы,

Я решил попробовать и скопировать эти конечные точки коллекции в Python.

Я хорошо начал с конечной точки аутентификации

Вот она в Почтальоне: enter image description here enter image description here

и мой код на Python, повторяющий это:

base_url = 'https://demo.docusign.net/restapi/v2/'
params = {'api_password':'true'}
headers = {'X-DocuSign-Authentication':json.dumps({"Username":username,"Password":password,"IntegratorKey": clientid}),
'Content-Type':'application/json'}
auth_req = requests.get(base_url+'login_information', params, headers=headers)

Запрос аутентификации дает 200, точно так же, как Postman

Но затем я пытаюсь выполнить другой запрос к / templates /

Вот это в Почтальоне: enter image description here

и заголовки такие же, как и запрос Auth выше

Я пробовал много вариантов следующего:

params = {'accountId':'7787022'}
get_templates = requests.get(base_url+'templates', params, headers=headers)

Независимо от того, что я пытаюсь, я получаю 404 вместо 200 как с почтальоном. Есть идеи, что я делаю не так?

Ответы [ 3 ]

0 голосов
/ 23 января 2019

Согласно вашему комментарию, похоже, у вас нет полностью построенного BaseUrl. Полное тело базового URL будет включать в себя сервер, версию оставшегося API и номер вашей учетной записи. Помимо информации для входа и других вызовов аутентификации, все стандартные вызовы * REST API будут начинаться с https://{{server}}.docusign.net/restapi/v2/accounts/{{accountId}}/

Будет выполнен вызов шаблонов GET для https://{{server}}.docusign.net/restapi/v2/accounts/{{accountId}}/templates.

* Вызовы API организации будут доступны в ближайшее время и, вероятно, будут использовать другой URL.

0 голосов
/ 24 января 2019

Вы также можете посмотреть пример кода python .Включает аутентификацию и множество примеров.

0 голосов
/ 23 января 2019

Следующее не исправило, но я думал, что это исправит, и все еще думаю, что это информация importnat:

В вызове аутентификации Postman под 'Tests' есть следующий код

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("accountId", jsonData.loginAccounts[0].accountId);
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("baseUrl", jsonData.loginAccounts[0].baseUrl);
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("password", jsonData.apiPassword);

, хотя это «тесты», они полезны и часто используются для установки переменных (некоторые люди из моей старой компании делали это).

В моем коде на Python мне нужно взять тело ответа из запроса на аутентификацию:

{
    "loginAccounts": [
        {
            "name": "Aiden McHugh",
            "accountId": "7787022",
            "baseUrl": "https://demo.docusign.net/restapi/v2/accounts/7787022",
            "isDefault": "true",
            "userName": "Aiden McHugh",
            "userId": "e87........6a4eb",
            "email": "aide....il.com",
            "siteDescription": ""
        }
    ],
    "apiPassword": "HheDl......3MQ="
}

и использовать переменную apiPassword для сброса пароля в моем заголовке

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