sap-servicelayer
v1.0.2
Published
Biblioteca TypeScript para integração com SAP Service Layer API
Downloads
327
Maintainers
Readme
sap-servicelayer
Biblioteca TypeScript para integração com SAP Service Layer API. Esta biblioteca fornece uma interface simples e tipada para interagir com o SAP Business One Service Layer.
Instalação
npm install sap-servicelayerUso Básico
import { ServiceLayer } from 'sap-servicelayer';
// Criar instância com todas as configurações
const serviceLayer = new ServiceLayer({
database: 'SBODEMOUS',
url: 'https://localhost:50000/b1s/v1',
username: 'manager',
password: '1234',
language: '29', // opcional, padrão: '29'
timeout: 0 // opcional, padrão: 0
});
// Fazer login (sem parâmetros, usa as configurações do construtor)
await serviceLayer.login();
// Executar uma requisição GET usando método auxiliar
const customers = await serviceLayer.get({
url: 'BusinessPartners',
page: 0,
size: 20
});
// Executar uma requisição POST usando método auxiliar
const newCustomer = await serviceLayer.post({
url: 'BusinessPartners',
data: {
CardCode: 'C00001',
CardName: 'Cliente Teste',
CardType: 'C'
}
});
// Executar operações em batch
const batchResults = await serviceLayer.executeBatch({
transaction: true,
operations: [
{
method: 'POST',
url: 'BusinessPartners',
data: { CardCode: 'C00002', CardName: 'Cliente 2' }
},
{
method: 'POST',
url: 'BusinessPartners',
data: { CardCode: 'C00003', CardName: 'Cliente 3' }
}
]
});API
constructor(config: ServiceLayerConfig)
Construtor da classe ServiceLayer.
Parâmetros:
database: Nome do banco de dadosurl: URL base do Service Layer (ex:https://localhost:50000/b1s/v1)username: Nome de usuáriopassword: Senhalanguage: Idioma (opcional, padrão:"29")timeout: Timeout em milissegundos (opcional, padrão:0)
login(): Promise<void>
Realiza login no Service Layer usando as credenciais configuradas no construtor.
get<T>(config: RequestConfig): Promise<PaginatedResponse<T>>
Executa uma requisição GET.
Parâmetros:
url: Endpoint relativo (ex:BusinessPartners)header: Headers customizados (opcional)page: Número da página para paginação (opcional)size: Tamanho da página (opcional)timeout: Timeout em milissegundos (opcional)
post<T>(config: RequestConfig): Promise<PaginatedResponse<T>>
Executa uma requisição POST.
Parâmetros:
url: Endpoint relativoheader: Headers customizados (opcional)data: Dados para enviar no body (opcional)timeout: Timeout em milissegundos (opcional)
put<T>(config: RequestConfig): Promise<PaginatedResponse<T>>
Executa uma requisição PUT.
Parâmetros:
url: Endpoint relativoheader: Headers customizados (opcional)data: Dados para enviar no body (opcional)timeout: Timeout em milissegundos (opcional)
patch<T>(config: RequestConfig): Promise<PaginatedResponse<T>>
Executa uma requisição PATCH.
Parâmetros:
url: Endpoint relativoheader: Headers customizados (opcional)data: Dados para enviar no body (opcional)timeout: Timeout em milissegundos (opcional)
delete<T>(config: RequestConfig): Promise<PaginatedResponse<T>>
Executa uma requisição DELETE.
Parâmetros:
url: Endpoint relativoheader: Headers customizados (opcional)timeout: Timeout em milissegundos (opcional)
executeBatch(config: ExecuteBatchConfig): Promise<BatchResponse[]>
Executa múltiplas operações em batch.
Parâmetros:
transaction: Setrue, executa todas as operações em uma transação (opcional)operations: Array de operações a executarheader: Headers customizados (opcional)timeout: Timeout em milissegundos (opcional)
executeSmlsvc<T>(config: ExecuteSmlsvcConfig): Promise<T>
Executa uma requisição SMLSVC.
Parâmetros:
url: Endpoint relativoheaders: Headers customizados (opcional)
logout(): Promise<void>
Realiza logout do Service Layer.
Tipos
A biblioteca exporta os seguintes tipos TypeScript:
ServiceLayerConfigRequestConfigExecuteBatchConfigExecuteSmlsvcConfigPaginatedResponse<T>BatchResponseBatchOperation
Recursos
- ✅ Suporte completo a TypeScript com tipos
- ✅ Retry automático em caso de erro 502
- ✅ Reconexão automática em caso de erro 401
- ✅ Suporte a paginação
- ✅ Suporte a operações batch
- ✅ Suporte a transações batch
- ✅ Tratamento de erros robusto
Licença
MIT
