Данная библиотека предназначена для удобной работы с API Remap версии 1.2 МоегоСклада. Она содержит набор функций, позволяющий совершать базовые операции над сущностями (создание, чтение, изменение, удаление).
<dependency>
<groupId>ru.moysklad.api</groupId>
<artifactId>api-remap-1.2-sdk</artifactId>
</dependency>
Основной класс, посредством которого осуществляется работа с SDK: ru.moysklad.remap_1_2.ApiClient
Для того, чтобы начать работу, требуется создать экземпляр этого класса, передав в конструктор поля адрес хоста API, флаг принудительного соединения по https, а также логин в формате [имя пользователя]@[название компании]
и пароль для доступа к API:
import ru.moysklad.remap_1_2.ApiClient;
ApiClient api = new ApiClient("api.moysklad.ru", true, "[API_LOGIN]", "[API_PASSWORD]");
Для доступа к эндпоинтам отдельных сущностей используется метод ru.moysklad.remap_1_2.ApiClient.entity()
, который возвращает базовый клиент для сущностей. Этот объект позволяет получить клиент для работы с конкретной сущностью. Например, чтобы получить список всех контрагентов, достаточно выполнить следующий код:
ListEntity<Counterparty> counterpartyList = api.entity().counterparty().get();
Чтобы отправить запрос к API на создание сущности, достаточно создать объект класса, заполнить необходимые поля, и затем при помощи соответствующего клиента вызвать метод post()
, передав в качестве параметра созданный объект:
Product product = new Product();
product.setName("Новый продукт");
api.entity().product().create(product);
После выполнения кода и при успешном создании объект product
будет заполнен полями, полученными из ответа API (id
, href
и др.).
Для изменения уже созданной сущности используется метод update()
клиента сущности, где в качестве параметров выступают либо сущность с измененными полями (должен быть установлен id
), либо id
и сущность с измененными полями:
product.setDescription("Описание продукта");
api.entity().product().update(product);
Полностью аналогично производится работа с остальными методами. Работа с вложенными сущностями производится при помощи специальных методов клиентов сущностей (например, метод получения позиций документов getPositions(String, ApiParam...)
).
Экспорт документов осуществляется с использованием шаблонов. Чтобы получить список доступных шаблонов для данного документа, нужно у соответствующего клиента вызвать цепочку методов metadata().embeddedtemplate()
. Например, получение списка шаблонов экспорта для отгрузки:
ListEntity<Template> templates = api.entity().demand().metadata().embeddedtemplate();
Для создания печатной формы по выбранному шаблону используется метод клиента документа export()
. В самом простом виде вызов метода выглядит следующим образом:
File exportFile = new File("demandExport.pdf");
api.entity().demand().export("{demand_id}", templates.getRows().get(0), exportFile);
В результате вызова метода будет создан файл demandExport.pdf
, содержащий экспортированную отгрузку с id = {demand_id}
по первому доступному шаблону.
Список доступных в Remap API 1.2 методов и сущностей, а также накладываемые ограничения по работе с API можно узнать в документации по ссылке https://dev.moysklad.ru/doc/api/remap/1.2/
Запуск тестов приводит к созданию номенклатуры и документов на аккаунте.
Запуск всех тестов требует корпоративного аккаунта и не рекомендуется.
Для запуска тестов нужно в переменные среды прописать корректные данные для доступа к API:
API_HOST
— хост API (напримерapi.moysklad.ru
)API_LOGIN
— логин в формате[имя пользователя]@[название компании]
API_PASSWORD
— пароль