Набор сервисов для обращения к различным API контура
Список поддерживаемых API
- Infra.Drive
- Portal.Auth
- Portal.Permissions
- Portal.OrganizationRequisites
- Portal.UserRequisites
- Portal.RepresentativeRequisites
- Portal.UserGroupRequisites
- Portal.BillingAccounts
- Portal.Cerberus
- Portal.Fias
- Portal.Authorizator
- Notifications.Subscriptions
- AccountsV1
- AccountsV2
- Docflow
Список имлементированных методов можно посмотреть непосредственно в репозитории
Как добавить методы или API которых тут нет?
Нужно создать пулл реквест. Если пул реквест был смержен пакет будет обновлен в соответствие с семвер.
Условия принятия пулл реквеста
- В случае если API уже существует в репозитории, добавленный метод может быть принят только в том случае если он существует в реальном API и не является дубликатом.
- В случае когда добавляется новое API проверяется то что API является массово используемым.
- В случае добавления нового API необходимо добавить его в список поддерживаемых API в файле
README.md
- Стараться избегать ломающих изменений. Если ломающее изменение есть необходимо отписать об этом в тексте пул реквеста.
Как получить клиент
const baseClients = require('@skbkontur/base-clients')
const {
AccountsV1,
AccountsV2,
Docflow
} = baseClients
const {
Auth,
Permissions,
UserRequisites,
OrganizationRequisites,
BillingAccounts,
Cerberus
} = baseClients.portal
const { Drive } = baseClients.infrastructure
const { Subscriptions } = baseClients.notifications
Как создать инстанс
Для создания инстанса клиента вам нужно передать ClusterClientProvider
и соответствующий провайдер авторизации, для большинства сервисов это PortalAuthProvider
.
Существует 2 провайдера:
-
PortalAutoAuthProvider
Авторизует и автоматически обновляет sid по логину и паролю -
PortalAuthProvider
Авторизует по заданномуauth.sid
и никогда не обновляет его
const { portal: { Permissions }, providers: { PortalAutoAuthProvider } } = baseClients
const portalAuthProvider = new PortalAutoAuthProvider({
portalLogin: '...',
portalPassword: '...',
apiKey:'...',
clusterClientProvider
})
const portalAuthProvider = new PortalAuthProvider({
sid: '...',
apiKey: '...'
})
const permissionsClient = new Permissions({
authProvider: portalAuthProvider,
clusterClientProvider
})