Лучший способ хранить XML, необходимый для вызовов API в пакете Python - PullRequest
0 голосов
/ 07 февраля 2020

У меня вопрос о том, где хранить XML данные, необходимые для выполнения вызовов API, в пакете python, который я собираю. Для некоторых вызовов API в моем пакете мне нужно предоставить двоичную строку xml в запросе. Прямо сейчас я читаю его из того же каталога, в котором хранится мой исходный код. Каков наилучший способ сохранить этот XML для использования во время выполнения после того, как мой проект был упакован и установлен через pip? Я прочитал о package_data из пакета setuptools, но я не уверен, как вы открываете файлы, включенные в него, когда выполняется вызов API.

Ниже приведен пример того, как я сейчас выполняю один из этих вызовов API. и текущая структура каталогов.

def make_api_call(self):

    # line below just extracts creds for api call from db
    API_CREDENTIALS = self.stage_request()

    #request_input.xml contains xml needed to make request
    data = open('./request_input.xml', 'rb').read()
    r = requests.post(url='apiurl',data=data,auth=(API_CREDENTIALS[0], API_CREDENTIALS[1]),headers={'Content-Type': 'text/xml'})
-----Package
-------Packages
---------module1.py
---------module2.py
---------module3.py
---------request_input.xml
-----setup.py
-----README.md

1 Ответ

0 голосов
/ 07 февраля 2020

Чтобы прочитать данные пакета, используйте один из следующих ...

...