|
Создание задач в Redmine из 1С | ☑ | ||
---|---|---|---|---|
0
bUbA
10.05.18
✎
09:06
|
Доброе утро!
При создании задач использую мануал http://www.redmine.org/projects/redmine/wiki/Rest_api Вот пример кода, с помощью которого я пытаюсь создать задачу: HTTPЗапрос = Новый HTTPЗапрос; HTTPЗапрос.Заголовки.Вставить("Connection", "keep-alive"); HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/octet-stream"); HTTPЗапрос.АдресРесурса = "/uploads.json"; //HTTPЗапрос.АдресРесурса = "/issues.json"; Попытка Текст = Новый ТекстовыйДокумент; Текст.Прочитать(issue, "UTF-8"); СтрокаЗапроса = Текст.ПолучитьТекст(); HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаЗапроса, "UTF-8", ИспользованиеByteOrderMark.НеИспользовать); Исключение HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(Новый ДвоичныеДанные(issue)); КонецПопытки; Попытка Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки issue - это путь к файлу формата json Вот содержимое этого файла: { "issue": { "id": 9792, "project": { "id": 94, "name": "Имя проекта" }, "tracker": { "id": 14, "name": "Поддержка" }, "status": { "id": 1, "name": "Новая" }, "priority": { "id": 5, "name": "Высокий" }, "author": { "id": 194, "name": "Автор задачи" }, "fixed_version": { "id": 202, "name": "Поддержка" }, "subject": "Тестовая тема", "description": "Тестовое описание", "start_date": "2018-05-08", "due_date": "2018-05-08", "done_ratio": 0, "spent_hours": 0, "total_spent_hours": 0, "custom_fields": [ { "id": 14, "name": "", "multiple": true, "value": [] }, { "id": 16, "name": "", "value": "0" } ], "created_on": "2018-05-08T15:55:05Z", "updated_on": "2018-05-08T15:55:05Z" } } Файл отправляю на адрес ресурса /uploads.json, получаю код ответа 201 и токен. После этого формирую второй файл, тоже формата json: { "issue": { "project_id": 1, "subject": "Тестовая тема", "uploads": [ { "token": "7973.a062c6e4722ed1d9d547a09e89d60320c536062b7ef2b7f105cdb1d32f15f1e7" } ] } } Второй файл отправляю на адрес ресурса /issues.json. В ответ получаю код ответа 422 Unprocessable Entity. И содержание ответа { "errors": [ "Тема не может быть пустым", "Проект не может быть пустым", "Трекер не может быть пустым", "Статус не может быть пустым" ] } Такой же ответ я получаю, если сразу же первый файл отправляю на ресурс /issues.json. Но ведь все необходимые поля заполнены. Подскажите пожалуйста в чем ошибка и куда копать надо. |
|||
1
triviumfan
10.05.18
✎
09:08
|
Неверное тело запроса, структура некорректна => ИС сообщает о незаполненных полях.
|
|||
2
triviumfan
10.05.18
✎
09:08
|
Строка запроса в студию!
|
|||
3
bUbA
10.05.18
✎
09:12
|
(1) Такую структуру файла я взял путем отправки GET запроса
/issues/НомерЗадачи.json, и на основании полученного файла создал свой. (2) Строка запроса - это содержимое первого файла |
|||
4
ximik33rus
10.05.18
✎
09:14
|
"project": {
"id": 94, "name": "Имя проекта" }, "tracker": { "id": 14, "name": "Поддержка" }, "status": { "id": 1, "name": "Новая" }, "priority": { "id": 5, "name": "Высокий" }, "author": { "id": 194, "name": "Автор задачи" }, "fixed_version": { "id": 202, "name": "Поддержка" Может, для некоторых элементов типа status, tracker следует использовать не кириллицу а латинские ключи? или цифровые идентификаторы. На .NET к примеру подобные элементы определены типом данных "Перечисление" и там поиск и заполнение нужным значением производится именно идентификатором а не заголовком. |
|||
5
bUbA
10.05.18
✎
09:28
|
(4) Пробовал менять на латиницу, использовать идентификатор вместо имени, пробовал вот так
{ "issue": { "id": 9789, "project": 94, "tracker": 14, "status": 1, "priority": { "id": 5, "name": "Высокий" }, "author": { "id": 194, "name": "Автор" }, "fixed_version": { "id": 202, "name": "Поддержка" }, "subject": "1", и вот так { "issue": { "id": 9789, "project": "System", "tracker": "Podderzka", "status": "Novaya", "priority": { "id": 5, "name": "Высокий" }, "author": { "id": 194, "name": "Анастасия Кузеванова" }, "fixed_version": { "id": 202, "name": "Поддержка Дилеров" }, "subject": 1, Но ответ везде один и тот же |
|||
6
ximik33rus
10.05.18
✎
09:30
|
а совсем "name": исключить нельзя?
|
|||
7
Новиков
10.05.18
✎
09:30
|
(0) Привет.
http://catalog.mista.ru/public/825153/ |
|||
8
Apokalipsec
10.05.18
✎
09:31
|
||||
9
triviumfan
10.05.18
✎
09:32
|
А ты вообще пробовал какие данные отправлять? Или сразу же напоролся на issues?
У меня тут недавно тоже был недавно пример... так оказалось, что в в тело запроса нужно было передавать "{ body: <твой json> }", хотя в документации этого не было) |
|||
10
triviumfan
10.05.18
✎
09:34
|
(9) yii фреймворк)
|
|||
11
zippygrill
10.05.18
✎
09:35
|
какой он ужасный этот ваш Редмайн
|
|||
12
g00d
10.05.18
✎
09:37
|
(11) лучший из того что есть бесплатно
|
|||
13
bUbA
10.05.18
✎
09:39
|
(7) В обработке используются только методы GET, мне же нужен POST
|
|||
14
bUbA
10.05.18
✎
09:39
|
(8) subject есть, сейчас еще попробую формат поменять...
|
|||
15
bUbA
10.05.18
✎
09:40
|
(9) Так мне только issue и надо
|
|||
16
triviumfan
10.05.18
✎
09:45
|
||||
17
triviumfan
10.05.18
✎
09:46
|
Странный у тебя Content-Type
|
|||
18
bUbA
10.05.18
✎
09:56
|
Спасибо, ребята!!!
В итоге помогло переделывание текста запроса под формат из (8) и замена текста заголовка на "application/json"! Буду дальше допиливать) |
|||
19
zippygrill
10.05.18
✎
13:27
|
(12) Как насчет Битрикса24?
|
|||
20
g00d
10.05.18
✎
14:16
|
(19) прошлой осенью мели глупость перейти с редмайна на битрикс24. Так то красово конечно, но с отчетами по учету времени там беда, интерфейс тормозной.
В общем редмайн был быстрее, точнее и удобнее. Очень гибко кастомизируется. |
|||
21
g00d
10.05.18
✎
14:18
|
(19) прошлой осенью имели глупость перейти с редмайна на битрикс24. Так то красиво конечно, но с отчетами по учету времени там беда + интерфейс тормозной.
В общем редмайн был быстрее, точнее и удобнее. Очень гибко кастомизируется. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |