GraphQL <=>OTRS

Модератор: ykolesnikov

Ответить
alexsuslov
OTRS Новобранец
Сообщения: 11
Зарегистрирован: 20 мар 2019, 11:51

GraphQL <=>OTRS

Сообщение alexsuslov » 28 мар 2019, 07:50

День добрый!
Занимаюсь общением из go с webservices otrs5. Нужно работать с файлами в атачах. Способ из документации очень тяжелый.
Есть идея сделать прокси GraphQL <=> OTRS. Это может пригодится кроме моей интеграции еще для WEBUI и мобильных приложений.

Нужна помощь с OTRS.

У меня есть рабочий http сервер с GUI клиентом GraphQL (https://github.com/alexsuslov/go-graphiql)
Как я вижу процесс:
Схему данных получим из DB и webservices. Нужно делать генераторы которые будет строить GraphQL resolve.
Дальше это нужно потестить.

Заранее благодарен всем кто откликнется
Всем удачи.
Александр Суслов
----------
https://graphql.org/

alexsuslov
OTRS Новобранец
Сообщения: 11
Зарегистрирован: 20 мар 2019, 11:51

Re: GraphQL <=>OTRS

Сообщение alexsuslov » 28 мар 2019, 18:01

Сделал
- репозиторий https://github.com/alexsuslov/goGraphQL-OTRS
- Resolver генератор
Получил структуру таблиц
- ticket
- article
- article_attachment

результат генерации выглядит так:
https://github.com/alexsuslov/goGraphQL ... t/tiket.go

Завтра запущу прокси, которую можно потрогать.

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: GraphQL <=>OTRS

Сообщение alexus » 28 мар 2019, 20:31

Зачем это нужно? Велосипед и костыли? Чем стандартный API не устраивает?
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

alexsuslov
OTRS Новобранец
Сообщения: 11
Зарегистрирован: 20 мар 2019, 11:51

Re: GraphQL <=>OTRS

Сообщение alexsuslov » 29 мар 2019, 04:33

День добрый!
Итак зачем:
1. У меня есть проблема, я ее решаю. Решаю так как умею.
(У человека с молотком весь мир гвозди)

Я у вас спрашивал:
- почему 2 сервера один копия др. отдают данные по разному. (числа как строки)
- как получить расширенные данные о клиенте тикета

Ответ меня не устроил.

2. Скорость работы:
У меня ответ стандартного API 78 сек.(Уверен я не умею его готовить)
мне нужно получить имена прикрепленных файлов и желательно hash файла.

Я с перла слез 94 году. Обратно не хочется. Это у же тогда был "write only". Проще на бабельном js писать.

Если этот велосипед ни кому не нужен. Обкарнаю до нужной мне функциональности и сделаю gRPC сервер. 2 дня работы и будет отдавать за вменяемое время, с понятным форматом данных и только то, что нужно.

А GraphQL это просто красивое решение от фейсбука для похожих у них проблем.

Удачи!

Александр.
PS: Будет нужна помощь, Обращайтесь.

alexsuslov
OTRS Новобранец
Сообщения: 11
Зарегистрирован: 20 мар 2019, 11:51

Re: GraphQL <=>OTRS

Сообщение alexsuslov » 29 мар 2019, 09:40

Потому, что у меня есть теперь
- авто документированный API
- сообщения об ошибках
- веб конструктор запросов
Снимок экрана 2019-03-29 в 9.34.28.png
Снимок экрана 2019-03-29 в 9.34.28.png (130.37 КБ) 11757 просмотров

alexsuslov
OTRS Новобранец
Сообщения: 11
Зарегистрирован: 20 мар 2019, 11:51

Re: GraphQL <=>OTRS

Сообщение alexsuslov » 29 мар 2019, 15:12

Сделал велосипед
Надо потестить как генерится под другие версии OTRS.
Подумать как сделать авторизацию для апи.
Снимок экрана 2019-03-29 в 15.06.47.png
Снимок экрана 2019-03-29 в 15.06.47.png (191.88 КБ) 11752 просмотра
Всем удачи!
Александр.

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: GraphQL <=>OTRS

Сообщение alexus » 29 мар 2019, 16:05

alexsuslov писал(а):
29 мар 2019, 04:33
1. У меня есть проблема, я ее решаю. Решаю так как умею.
Это аргумент хороший))
alexsuslov писал(а):
29 мар 2019, 04:33
Я у вас спрашивал:
- почему 2 сервера один копия др. отдают данные по разному. (числа как строки)
- как получить расширенные данные о клиенте тикета
Где спрашивали?
alexsuslov писал(а):
29 мар 2019, 04:33
У меня ответ стандартного API 78 сек.(Уверен я не умею его готовить)
Это как-то странно звучит. Зависит от запроса, конечно. Тут и готовить-то нечего. Хотя есть мнение, что с быстродействие у GraphQL есть проблемы.

Если нужна, какая помощь с API или данными, обращайтесь. Для полезного и интересного решения всегда готов помочь!
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

alexsuslov
OTRS Новобранец
Сообщения: 11
Зарегистрирован: 20 мар 2019, 11:51

Re: GraphQL <=>OTRS

Сообщение alexsuslov » 31 мар 2019, 17:06

Доделал нужный мне функционал, для теста проверил генератор на всех таблицах моего отрс.

Как сделать на своей базе:
Необходимо получить схему таблицы:

в отрс есть sql запросы
Вложение Снимок экрана 2019-03-31 в 16.48.19.png больше недоступно
SHOW COLUMNS FROM sla;

получаем схему в файл csv.

файл переименовываем с именем поля

sla.csv

копируем sla.csv в папку goGraphQL-OTRS/api/csv/

в корне запускаем

time ./gen.sh

real 0m1.466s
user 0m0.688s
sys 0m0.674s

функциональность для мутации данных, не сделана.
В принципе возможно добавить в генератор, но без спецов по отрс я за это не возьмусь.

Всем удачи!
Александр.
Вложения
Снимок экрана 2019-03-31 в 16.48.19.png
Снимок экрана 2019-03-31 в 16.48.19.png (236.58 КБ) 11731 просмотр

Ответить