Я использую модуль Requests python для выполнения вызовов API RESTFUL POST для создания нового элемента.
ПРОБЛЕМА: Элементы дублируются. Иногда создается по 3 штуки каждого предмета. В окончательном API-интерфейсе отсутствует проверка существующих данных для предотвращения дублирования.
ЦЕЛЬ: Я хочу отправить данные для создания одиночного новый элемент в стороннем приложении под названием Netbox, созданном с помощью Django.
ЧТО Я СДЕЛАНО?:
- Я попытался написать код для проверьте существующие элементы, и он все еще создает дубликаты.
- Я попытался установить таймер, чтобы приостановить выполнение кода на 10 секунд, пока запрос не будет завершен.
Процесс выглядит следующим образом:
Python Backend (Flask) ---> Python Backend (Flask) --> Netbox (Django)
Data Origin sent via Requests ---> Data Netbox Calls (Via PyNetBox) --> Final DataStore
Два бэкэнда размещены в Cloud Foun dry, а Netbox развернут на Linux на Prem Server.
У меня есть словарь, как показано ниже который представляет каждый элемент, который мне нужно создать в Netbox.
Ex. payload = {'site':'1', 'device':'switch01'}
Я отправляю каждый фрагмент данных в свой бэкэнд промежуточного программного обеспечения через al oop, чтобы сделать последний вызов api в netbox через pynetbox. Я не могу напрямую подключиться к netbox.
for payload in payloads:
URL = f'{MIDDLEWARE_URL}/netbox/create_item'
print(f'URL is: {URL} | Payload is {payload}')
headers = { 'content-type': 'application/json', 'cache-control': "no-cache"}
proxies={'http' : None, 'https': None}
r = requests.post(URL, data=json.dumps(payload), headers=headers, verify=False, proxies=proxies)
Я был бы признателен за любую помощь относительно того, почему это происходит, и за любые рекомендации по улучшению моего базового кода логи c.
Всего наилучшего, Фараз