Запись полей через REST API
Re: Запись полей через REST API
Крайне странно, что на ошибочный запрос отсылается статус 200(OK)
200 '{"status":"error","error_code":"","error_message":"key is required"}'
Я проверил 10 раз, "key" Совпадает c api ключом
200 '{"status":"error","error_code":"","error_message":"key is required"}'
Я проверил 10 раз, "key" Совпадает c api ключом
- support
- Техническая поддержка
- Сообщения: 9210
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Запись полей через REST API
Если ключи не совпадают, было бы сообщение "API Key mismatch"
А так что то ключ не доходит туда вообще. Вы как передаете? Какая версия программы.
Ранее было нужно использовать только POST запрос. В 2.4.1 можно и GET
А так что то ключ не доходит туда вообще. Вы как передаете? Какая версия программы.
Ранее было нужно использовать только POST запрос. В 2.4.1 можно и GET
Re: Запись полей через REST API
Версия "Руководителя" с дополнением 2.4.1
отправляю post запрос
отправляю post запрос
Код: Выделить всё
import requests
import openpyxl as xl
url = "http://----------------/rukovoditel/api/rest.php"
BOOK = '/home/sas/Documents/РУКОВОДИТЕЛЬ-2019-04-05_v1.xlsx'
query_pattern = '''{
"key":"---------------",
"username": "admin",
"password": "admin",
"action": "%s",
"entity_id": %s,
%s
}'''
def send_contract_json(contract_list):
for e in contract_list:
items = '''"items": {
"field_454": %s,
"field_455": "%s"
}''' % (str(e[0]), str(e[1]))
query = query_pattern % (u"insert", str(42), items)
print(query)
response = requests.post(url, data=query.encode('utf-8'))
print(response.status_code, response.content, "\n")
- support
- Техническая поддержка
- Сообщения: 9210
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Запись полей через REST API
Вы отправляете строку в json, а нужно отправлять конкретные переменные.
Re: Запись полей через REST API
Что то я не понял, можно по подробнее? Какого формата должна быть строка, чтобы запрос обрабатывался корректно?
Мой пример идентичный viewtopic.php?f=2&t=1839&hilit=REST , который вроде бы сработал
- support
- Техническая поддержка
- Сообщения: 9210
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Запись полей через REST API
Смотрите пример тут https://www.rukovoditel.net/ru/api.html
Переменные передаются как POST переменные, а не как json строка.
Переменные передаются как POST переменные, а не как json строка.
Re: Запись полей через REST API
Понял, исправил, теперь ошибка выглядит так:support писал(а): ↑18 апр 2019, 13:01 Смотрите пример тут https://www.rukovoditel.net/ru/api.html
Переменные передаются как POST переменные, а не как json строка.
Код: Выделить всё
{
'items': [
{'field_454': 1, 'field_455': '-----'},
{'field_454': 2, 'field_455': '-----'},
{'field_454': 3, 'field_455': '-----'},
{'field_454': 4, 'field_455': '-----'},
{'field_454': 5, 'field_455': '-----'},
{'field_454': 6, 'field_455': '-----'},
{'field_454': 7, 'field_455': '-----'},
{'field_454': 8, 'field_455': '-----'},
{'field_454': 9, 'field_455': '-----'},
{'field_454': 10, 'field_455': '-----'},
{'field_454': 11, 'field_455': '-----'},
{'field_454': 12, 'field_455': '-----'}
],
'entity_id': 42,
'username': 'admin',
'key': 'apikey,
'password': 'admin',
'action': 'insert'
}
Код: Выделить всё
200 b'{"status":"error","error_code":"","error_message":"items is not array"}'
- support
- Техническая поддержка
- Сообщения: 9210
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Запись полей через REST API
Полагаю что должно быть так
Код: Выделить всё
'items': [
['field_454': 1, 'field_455': '-----'],
Re: Запись полей через REST API
Такое, к сожалению, невозможно, в квадратных скобках массив, в кудрявых словарь(dictionary, map). То есть формат поле:значение возможен только в словареsupport писал(а): ↑18 апр 2019, 14:44 Полагаю что должно быть такКод: Выделить всё
'items': [ ['field_454': 1, 'field_455': '-----'],