Rest
Rest — classe para realizar chamadas à Rest API da plataforma Flowlu. A instância singleton fica disponível após a inicialização do Frame.
Gerencia automaticamente a autorização (OAuth2) e o limite de taxa de requisições (RateLimiter).
import { Rest } from '@flowlu/miniapp-jssdk'Propriedades
oauth2
Instância de OAuth2 para gerenciamento dos tokens de autorização
get oauth2(): OAuth2rateLimiter
Instância de RateLimiter para o controle da taxa de requisições
get rateLimiter(): RateLimiterMétodos
getInstance
Retorna a instância singleton atual de Rest. Chame apenas após a inicialização do Frame
static getInstance(): Restcall
Método universal de chamada à Rest API, delegando a execução para get() ou post() dependendo do tipo de requisição
async call(params: RestCallParams): Promise<any>| Parâmetro | Tipo | Descrição |
|---|---|---|
params | RestCallParams | Parâmetros da requisição |
destroy
Remove inscrições e libera recursos
destroy(): voidget
Executa uma requisição GET à Rest API para obter um único registro ou uma lista de registros. Ao obter uma lista, suporta parâmetros de paginação, busca e filtragem
async get(method: string, params?: RestGetParams): Promise<any>| Parâmetro | Tipo | Descrição |
|---|---|---|
method | string | URL do método da API, por exemplo, '/core/user/list' |
params | RestGetParams | Parâmetros da requisição: limit, page, search, fields, filter |
post
Executa uma requisição POST à Rest API para criar, atualizar ou excluir um registro
async post(method: string, data?: RestPostData): Promise<any>| Parâmetro | Tipo | Descrição |
|---|---|---|
method | string | URL do método da API, por exemplo, '/core/user/update/39' |
data | RestPostData | Dados da requisição |
Exemplo
import { App, Rest } from '@flowlu/miniapp-jssdk'
await App.initializeFrame()
const rest = Rest.getInstance()
// obter a lista de usuários
const users = await rest.get('/core/user/list', {
limit: 50,
fields: ['id', 'name']
})
// obter o usuário atual
const user = await rest.get('/core/user/get/')
// obter usuário por id
const user39 = await rest.get('/core/user/get/39')
// atualizar os dados do usuário
await rest.post('/core/user/update/39', {
email_personal: '[email protected]',
})
// chamada universal
const result = await rest.call({
type: 'get',
method: '/core/user/list',
params: { limit: 10 }
})const App = window.FlowluMiniApp;
const frame = await App.initializeFrame();
// obter a lista de usuários
const users = await frame.rest.get('/core/user/list', {
limit: 50,
fields: ['id', 'name']
});
// obter o usuário atual
const user = await frame.rest.get('/core/user/get/');
// obter usuário por id
const user39 = await frame.rest.get('/core/user/get/39');
// atualizar os dados do usuário
await frame.rest.post('/core/user/update/39', {
email_personal: '[email protected]',
});
// chamada universal
const result = await frame.rest.call({
type: 'get',
method: '/core/user/list',
params: { limit: 10 }
});Paginação, Busca e Filtragem
Ao obter uma lista de registros através de get(), parâmetros adicionais estão disponíveis:
| Campo | Tipo | Descrição |
|---|---|---|
limit | number | Número máximo de registros por requisição. O padrão é 50, o máximo é 100 |
page | number | Número da página do resultado da requisição. O padrão é 1 |
search | string | Consulta de busca |
fields | string[] | Lista de campos a serem retornados na resposta |
filter | RestFilter | Array de parâmetros para filtragem da lista de registros |
import { App, Rest } from '@flowlu/miniapp-jssdk'
await App.initializeFrame()
const rest = Rest.getInstance()
// limitar o número máximo de registros na resposta a 100
const users = await rest.get('/core/user/list', {
limit: 100,
})
// paginação: segunda página com 50 registros por página (padrão)
const usersSecondPage = await rest.get('/core/user/list', {
page: 2,
})
// limitar a lista de campos retornados na resposta
const usersCompact = await rest.get('/core/user/list', {
fields: ['id', 'name']
})
// busca por string
const usersBySearch = await rest.get('/core/user/list', {
search: 'neo',
})
// filtrar por valor de campo
const usersByUsername = await rest.get('/core/user/list', {
filter: {
username: '[email protected]',
},
})
// filtrar por uma lista de valores
const usersByIds = await rest.get('/core/user/list', {
filter: {
id: [39, 64],
},
})
// filtrar com exclusão de valor
const usersByExcludedIds = await rest.get('/core/user/list', {
filter: {
id: ['!39', '!64'],
},
})
// filtrar por tempo
const tasksByUpdatedDate = await rest.get('/task/task/list', {
filter: {
updated_date: '2025-03-26 10:50:34',
},
})
// filtrar por intervalo de tempo
const tasksByDateRange = await rest.get('/task/task/list', {
filter: {
updated_date: {
start_date: '2025-01-01 00:00:00',
end_date: '2025-12-31 23:59:59',
},
},
})
// filtrar com correspondência exata
const tasksByExactId = await rest.get('/task/task/list', {
filter: {
id: {
type: 'exact_value',
value: 1550,
},
},
})
// filtrar com valor máximo
const tasksWithMaxId = await rest.get('/task/task/list', {
filter: {
id: {
type: 'less',
value: 50,
},
},
})
// filtrar com valor mínimo
const tasksWithMinId = await rest.get('/task/task/list', {
filter: {
id: {
type: 'more',
value: 1550,
},
},
})
// filtrar com intervalo de valores
const tasksByIdRange = await rest.get('/task/task/list', {
filter: {
id: {
type: 'range',
start_value: 50,
end_value: 1550,
},
},
})