Описание по работе с API
Инфраструктура Брэйнисофт представляет из себя совокупность таких веб-сервисов как:
- Core (ядро)
- Print Forms (печатные формы)
- Gateway (шлюз)
- File Storage (файловое хранилище)
Разделение по веб-сервисам находит своё отражение в документации Brainysoft. Ниже на снимке можно увидеть это разделение.
Каждый из веб-сервисов имеет свой REST-API. В свою очередь каждый из REST-API состоит из коллекции веб-методов (endpoints).
Методы веб-сервисов доступны по следующим адресам:
- Core (ядро) - https://{customer}-saas.brainysoft.ru
- Print Forms (печатные формы) - https://pdf.brainysoft.ru
- Gateway (шлюз) - https://gate.brainysoft.ru
- File Storage (файловое хранилище) - https://file.brainysoft.ru
- Ядро --> Другие --> Методы ядра для работы со шлюзом - https://{customer}-saas.brainysoft.ru
Front/UI (интерфейс) и ЛК (личный кабинет) используют методы веб-сервисов, которые в совокупности образуют backend.
Метод
Из-за инфрастуктурной особенности системы все методы веб-сервиса ядра и методы ядра работающие с веб-сервисом шлюза получают в URL префикс bs-core. Например, ядровой метод GET /main/clients/{id} в настоящий момент имеет URL https://{customer}-saas.brainysoft.ru/bs-core/main/clients/{id}.
В ответ на запрос приходит объект следующей структуры:
Свойство | Описание |
status | При успешном отрабатывание запроса возвращается “ok”. Иначе возвращается ошибка. |
timestamp | Возвращается дата+время(ядра) в формате unix timestamp в миллисекундах. |
data | Объект сущности в формате валидного джейсона. В ответ может возвратиться как коллекция, объект так например и идентификатор созданной сущности "data": 3692 в формате валидного джейсона. |
Пример тела ответа:
{
"status": "ok",
"timestamp": 1550653059521,
"data": 3692
}
Пример POST-запроса (создание лида) в программе Postman:
1.
2.
Пример POST-запроса (создание лида) через cURL:
curl -X POST https://{customer}-saas.brainysoft.ru/bs-core/main/leads \
-H 'Content-Type: application/json' \
-H 'bsauth: {api_token}' \
-d '{
"firstName": "Фридрих",
"mobilePhone": "797762007719",
"lastName": "Эберт",
"birthDate": "1982-12-20",
"sexId": 101251,
"passport": {
"issueDate": "2012-01-23",
"no": "782573"
},
"addressData": { },
"registrationAddressData": { },
"amount": 99,
"subdivisionId": 101798,
"period": 30
}'
Более подробный пример "Создание лида и из него Клиента, Заявки" плюс пример кода на PHP можно посмотреть здесь.