Skip to content

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).

ts
import { Rest } from '@flowlu/miniapp-jssdk'

Propriedades

oauth2

Instância de OAuth2 para gerenciamento dos tokens de autorização

ts
get oauth2(): OAuth2

rateLimiter

Instância de RateLimiter para o controle da taxa de requisições

ts
get rateLimiter(): RateLimiter

Métodos

getInstance

Retorna a instância singleton atual de Rest. Chame apenas após a inicialização do Frame

ts
static getInstance(): Rest

call

Método universal de chamada à Rest API, delegando a execução para get() ou post() dependendo do tipo de requisição

ts
async call(params: RestCallParams): Promise<any>
ParâmetroTipoDescrição
paramsRestCallParamsParâmetros da requisição

destroy

Remove inscrições e libera recursos

ts
destroy(): void

get

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

ts
async get(method: string, params?: RestGetParams): Promise<any>
ParâmetroTipoDescrição
methodstringURL do método da API, por exemplo, '/core/user/list'
paramsRestGetParamsParâmetros da requisição: limit, page, search, fields, filter

post

Executa uma requisição POST à Rest API para criar, atualizar ou excluir um registro

ts
async post(method: string, data?: RestPostData): Promise<any>
ParâmetroTipoDescrição
methodstringURL do método da API, por exemplo, '/core/user/update/39'
dataRestPostDataDados da requisição

Exemplo

ts
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 }
})
js
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:

CampoTipoDescrição
limitnumberNúmero máximo de registros por requisição. O padrão é 50, o máximo é 100
pagenumberNúmero da página do resultado da requisição. O padrão é 1
searchstringConsulta de busca
fieldsstring[]Lista de campos a serem retornados na resposta
filterRestFilterArray de parâmetros para filtragem da lista de registros
ts
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,
    },
  },
})

Publicado sob a licença MIT.