API Контур Диадок

Обсуждаются как существующие проекты (перевод документации, информационная система и т.п.), так и создание новых.

Модератор: Модераторы

API Контур Диадок

Сообщение alexs » 27.02.2018 09:13:12

Кто либо сталкивался с этим? Есть ли готовая реализация под FPC?
Или как всегда - самому ковырять?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: API Контур Диадок

Сообщение WAYFARER » 27.02.2018 10:27:55

У них есть sdk, можно попробовать взять либу для c++, или работать с помощью COM-сервисов.
Я тоже заинтересован в этом вопросе, сейчас пилим для php интеграцию.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: API Контур Диадок

Сообщение alexs » 27.02.2018 12:32:25

Хочется безшовную интеграцию с моим софтом.
COM - не годится, ибо не кросплатформено
c++ - с FPC не слинкуешь нормально.

Быстро просмотрел их документацию - не нашёл нормального описания протокола на уровне HTTP
Все идёт уже на уровне COM.

Не поделишься базовыми примерами?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: API Контур Диадок

Сообщение serbod » 27.02.2018 13:22:05

А в чем проблема линковки C++ с FPC?
Аватара пользователя
serbod
постоялец
 
Сообщения: 449
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: API Контур Диадок

Сообщение alexs » 27.02.2018 13:43:25

1. Объекты из С++ в FPC не могут быть нормально слинкованы.
2. Кросплатформенность кода.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: API Контур Диадок

Сообщение serbod » 27.02.2018 14:13:06

1. Согласен, с этим проблема. Нужно делать "прокладку", переводящую классы в функции. И она же может помочь с кроссплатформенностью. Есть статья на эту тему: http://rvelthuis.de/articles/articles-cppobjs.html
Аватара пользователя
serbod
постоялец
 
Сообщения: 449
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: API Контур Диадок

Сообщение vitaly_l » 27.02.2018 16:52:08

alexs писал(а):Быстро просмотрел их документацию - не нашёл нормального описания протокола на уровне HTTP

Из любопытства глянул документацию. Вся их документация - это и есть описание протокола на уровне HTTP (точно такая-же у яндекса и т.п.). В каждом разделе их документации (помимо 90% воды), есть пример обращения GET или POST. В сущности, чтобы всё быстро понять, Вам нужно оттуда брать только названия переменных и далее отправлять их синапсом или подобным методом, на указанные в доке URL, но уже с присвоенными значениями. Вот например: http://api-docs.diadoc.ru/ru/latest/how ... voice.html

Довольно примитивная АПИ система передачи данных - она везде одинаковая, разница лишь в названии переменных. Технически можете попробовать слать им GET команды прямо из строки браузера вот сюда: http://diadoc-api.kontur.ru и посмотреть их ответы там-же. Только вначале нужно получить пароль/логин/ключ и т.п. см. здесь: http://api-docs.diadoc.ru/ru/latest/Authorization.html

У них на С++ написана адаптированная версия, типа нашего синапса, но уже с готовыми функциями, типа "отправить отчёт", но в итоге, эта функция, шлёт всё те-же самые переменные что и GET или POST, просто в их С++ версии, уже "автоматом" идёт подключение, получение и вставка ключа с паролем.

Тобишь берёте нужный Вам документ в их АПИ, и вставляете все переменные из этого документа и затем шлёте их синапсом им на сервер (вместе с ключами полученными при авторизации) и забейте на всё остальное С++ подобное ..., т.к. прямым HTTP - Вам будет и быстрее и надёжнее.

Вот например, пример ответа их сервера: https://diadoc-api.kontur.ru/Authenticate, о том что они готовы принять POST переменные.
Или вот например, так ругается их сервер, на требование выдать информацию об организации, если не передали POST ключ этой самой организации: https://diadoc-api.kontur.ru/GetMyOrganizations.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: API Контур Диадок

Сообщение alexs » 27.02.2018 17:56:25

Вообщем - схалявить не получилось :-)
Готового решения у народа нет.
Придётся самому писать.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: API Контур Диадок

Сообщение WAYFARER » 01.03.2018 12:56:52

alexs писал(а):Не поделишься базовыми примерами?

https://github.com/diadoc/diadocapi-doc ... ocs/source - вот тут пошарься, информации в избытке.
Берешь indy или Synapse в помощь и вперед))
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: API Контур Диадок

Сообщение alexs » 04.06.2018 16:11:17

Если кому интересно
Работы по API в целом идёт к завершению
Перевёл все прототипы объектов на паскаль
Минимально реализовал объект для взаимодействия с DIADOC - данные по входящим документам и сообщениям, по контрагентам читаются нормально. Для меня это есть минимально необходимое. В дальнейшем будет дописываться.
Попутно реализовал возможность работы с данными в формате Protobuf и перевод этих данных в объекты паскаля. Сами объекты пока создаются руками на основе прототипов.
В дальнейшем, если прижмёт, можно реализовать препроцессор из файлов proto в pas.
вси исходники и небольшая демка находятся по адресу: https://svn.shamangrad.ru/diadocsdk_fpc

Добавлено спустя 23 часа 44 минуты 39 секунд:
Добавил возможность сохранения объектов в Protobuf
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: API Контур Диадок

Сообщение alexs » 08.06.2018 17:37:08

Переработал исходники. Упростил итераторы по объектам. Активное тестирование и чистка блох.
В режиме чтения данных из диадока уже работает.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: API Контур Диадок

Сообщение alexs » 31.08.2018 10:01:26

Держу в актуальном состоянии
Сейчас добавил последние изменения насчёт подписания сотрудника на уведомления.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: API Контур Диадок

Сообщение zoltanleo » 31.08.2018 14:20:31

Алексей, кинь прямую ссылку на репу svn, если нетрудно
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 458
Зарегистрирован: 17.10.2013 10:55:01

Re: API Контур Диадок

Сообщение alexs » 31.08.2018 21:21:33

3 сообщения выше :D :
https://svn.shamangrad.ru/diadocsdk_fpc
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: API Контур Диадок

Сообщение alexs » 19.11.2018 15:27:54

Перенёс проект на github
https://github.com/diadoc/diadocsdk-cpp
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

След.

Вернуться в Разное

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20

Рейтинг@Mail.ru