go-moysklad
Языки
- Go100%
SDK находится в стадии разработки!
Некоторые методы могут отсутствовать или работать неправильно!
Подробная документация в процессе написания.
Установка
Требуемая версия go >= 1.21
go get -u gitverse.ru/arcsub/go-moysklad@HEAD
Особенности
Возвращаемые аргументы
Каждый запрос на создание/изменение/удаление возвращает 3 аргумента. Рассмотрим объявление функции
В примере выше нас интересуют возвращаемые аргументы:
– указатель на сущность/документ, например *Product при вызове*T(возвращаетCreate()при вызове методаbool).Delete()– ответ на запрос, содержащий *http.Response и некоторую другую информацию.*resty.Response– ошибки, если они были. При возникновении ошибок от API МойСклад в качестве ошибки будет заполненная структураerrorApiErrors
Указатели
Поля структур сущностей и документов являются указателями.
- Чтобы получить значение по указателю необходимо вызвать метод структуры
.GetFieldName()- наименование поля.FieldName
Например:
- Чтобы установить значение необходимо передать значение в соответствующий метод SetFieldName(value)
- наименование поляFieldName- передаваемое значение.value
Note
Методы
возвращают указатель на объект, что позволяет вызывать методы по цепочке.SetFieldName()
Например:
Для безопасного разыменовывания указателя необходимо передать указатель в методDeref()Чтобы установить указатель на примитивное значение поля также существуют вспомогательные методы:возвращает *boolBool()возвращает *intInt()возвращает *uint64Uint()возвращает *float64Float()возвращает *stringString()
Использование
Создание экземпляра клиента
Создание экземпляра клиента со своим http клиентом
Создание экземпляра клиента с resty клиентом
Аутентификация
Имеется два способа аутентификации.
- С помощью токена. Метод клиента WithTokenAuth()
- С помощью пары логин/пароль. Метод клиента WithBasicAuth()
Методы клиента
WithTimeout(timeout)
Установить необходимый таймаут для http клиента.
WithTokenAuth(token)
Получить простой клиент с авторизацией через токен.
WithBasicAuth(username, password)
Получить простой клиент с авторизацией через пару логин/пароль.
WithDisabledWebhookContent(value)
Временное отключение уведомлений вебхуков
Параметры запроса
Создать экземпляр для работы с параметрами запроса
Методы для работы с параметрами запроса
Количество элементов на странице
Пример:
Смещение от первого элемента offset=val
Пример:
Контекстный поиск search=val
Пример:
Замена ссылок объектами
Пример:
Фильтрация по значению key=value
Пример:
Строго больше key>value
Пример:
Строго меньше key<value
Пример:
Больше или равно key=>value
Пример:
Меньше или равно key<=value
Пример:
Не равно key!=value
Пример:
Частичное совпадение (обычное подобие) key~value
Пример:
Полное совпадение в начале значения (левое подобие) key~=value
Пример:
Полное совпадение в конце значения (правое подобие) key=~value
Пример:
Частичное совпадение не выводится key!~value
Пример:
Фильтрация по удалённым документам isDeleted=val
Пример:
Фильтрация по напечатанным документам printed=val
Пример:
Фильтрация по опубликованным документам published=val
Пример:
Фильтрация по архивным сущностям archived=val
Пример:
Группировка выдачи groupBy=val
Пример:
Применение сохранённого фильтра namedFilter=href
Метод принимает указатель на сохранённый фильтр.
Пример:
Сортировка по умолчанию order=fieldName
Пример:
Сортировка по возрастанию order=fieldName,asc
Пример:
Сортировка по убыванию order=fieldName,desc
Пример:
Остатки и себестоимость в позициях документов fields=stock
Метод устанавливает лимит позиций в 100 единиц, а также применяет замену ссылок объектами для поля
Пример:
Тип остатка stockType=val
Используется в отчёте "Остатки"
Пример:
Интервал, с которым будет построен отчет interval=val
Используется в отчётах
Пример:
Начало периода momentFrom=val
Метод принимает
Пример:
Конец периода momentTo=val
Метод принимает
Пример:
Сервисы
Для перехода к определённому сервису необходимо вызвать цепочку методов, аналогично пути запроса.
Пример: ProductService
Сервис для работы с товарами.
Относительный путь:
Цепочка вызовов от клиента будет выглядеть следующим образом:
Запрос по объекту Meta
Если возникает необходимость точечно запросить информацию о сущности, имея только её , можно использовать
метод .
Чтобы использовать данный функционал необходимо точно знать, какой тип данных мы ожидаем получить в ответ.
Метод имеет следующую сигнатуру:
Пример:
Пример работы
Обратная связь
Буду рад видеть ваши идеи и предложения в Issues.