Ir para o conteúdo

Objeto REST

Visão Geral

Os objetos REST permitem App Builder desenvolvedores para fazer uso de APIs REST de forma semelhante a App Builder objetos de Dados. Objetos REST suportam o seguinte:

  • Operações CRUD
  • Integração com vários App Builder controles como Painéis de várias linhas/linhas únicas, Listas
  • Eventos personalizados
  • Triagem
  • Filtragem (string de consultar de filtro no estilo OData )

Para APIs REST que suportam operações de estilo CRUD, configurar um objeto REST pode ser uma maneira fácil de integrar uma API com seu App Builder aplicativo.

Endpoints CRUD

Para uma API REST estilo CRUD, você vai querer configurar Endpoints que permitam que registros sejam Criados, Lidos, Atualizados e Excluídos. Em geral, isso significa configurar os seguintes Endpoints:

Operação Método URL de exemplo
Criar POSTAR para um recurso de coleção https://api.example.com/rest/v1/customers
Ler OBTER de um recurso de coleção https://api.example.com/rest/v1/customers
Atualizar PUT ou POST para um recurso de item https://api.example.com/rest/v1/customers/<customerId>
Excluir EXCLUIR de um recurso de item https://api.example.com/rest/v1/customers/<customerId>

App Builder exemplo de Configuração da API REST

As etapas abaixo demonstram como configurar endpoints CRUD para an App Builder servidor REST. Neste exemplo, assumiremos que existe uma tabela como:

Coluna Atributos Tipo Lógico
CustomerId Chave primária String
Nome Sequência de caracteres
DiasAtivos Inteiro

Esta API REST é exposta do endpoint "northwinds" como um recurso chamado "customers". Assim, a URL para atingir este endpoint seria:

https://api.example.com/rest/v1/northwinds/customers

Certifique-se de ter configurado a API REST no seu servidor e criado a fonte de dados REST antes de continuar.

Ler Endpoint

  • Navegue até IDE > Servidores de dados > Seu servidor de dados REST > Detalhes
  • Clique em + Endpoint no painel Endpoints e configure as seguintes informações:
    • Nome: clientes (obter)
    • Endpoint: clientes
    • Método: GET
  • Clique em Salvar
  • Clique em Descobrir
  • Voltar para a página anterior
  • Selecione seu endpoint clientes (obter)
  • Observe que há três tabelas de saída
  • Clique duas vezes na tabela clientes (obter)/itens
  • Defina a coluna customerId como a chave primária
  • Certifique-se de que as colunas estejam usando o tipo de armazenamento esperado
  • Clique em Resultados e verifique se os dados retornados são os esperados

Criar

  • Navegue até IDE > Servidores de dados > Seu servidor de dados REST > Detalhes
  • Clique em + Endpoint no painel Endpoints e configure as seguintes informações

    • Nome: clientes (inserir)
    • Endpoint: clientes
    • Método: POST
    • Entrada de amostra - App Builder espera que a entrada esteja no seguinte formato:

      {
        "item": {
          "customerId": "abcde",
          "name": "Test Customer",
          "daysActive": 10
        }
      }
      
  • Clique em Salvar

  • Clique em Descobrir
    • Observe que clicar em Descobrir mais de uma vez pode causar uma violação de chave primária, pois o registro 'abcde' já existirá no servidor. Se isso acontecer, você precisará excluir o registro existente antes que o Discover funcione. Exclua o registro no App Builder servidor REST API ou configure e importe o endpoint"Excluir".
  • Voltar para a página anterior
  • Selecione seu cliente (inserir) Endpoint
  • Clique duas vezes na tabela clientes (inserir)
  • Defina a coluna customerId como a chave primária
  • Defina as colunas customerId, name e daysActive na direção Input/Output.
    • Quando criamos um registro passamos todas as três colunas (Input). O App Builder o servidor REST API ecoa essas colunas no JSON retornado (Saída). Se por algum motivo o servidor ecoou de volta um valor diferente do que enviamos (talvez formatando uma string), queremos que nosso registro contenha os valores retornados.
  • Certifique-se de que as colunas estejam usando o tipo de armazenamento esperado

Atualizar

  • Navegue até IDE > Servidores de dados > Seu servidor de dados REST > Detalhes
  • Clique em + Endpoint no painel Endpoints e configure as seguintes informações
  • Nome: clientes (atualização)
  • Endpoint: clientes/{{item/customerId}}
  • Método: POST
  • Entrada de amostra - {{nm.ab}} espera que a entrada esteja no seguinte formato:

    {
      "item": {
        "customerId": "abcde",
        "name": "Test Customer (updated)",
        "daysActive": 10
      }
    }
    
  • Clique em Salvar

  • Clique em Descobrir
  • Voltar para a página anterior
  • Selecione seu endpoint clientes (atualização)
  • Clique duas vezes na tabela clientes (atualização)
  • Defina a coluna customerId como a chave primária
  • Defina as colunas customerId, name e daysActive na direção Input/Output.
  • Certifique-se de que as colunas estejam usando o tipo de armazenamento esperado

Objeto REST

Depois que seus CRUD Endpoints estiverem configurados, você pode criar o Objeto REST.

Criar Objeto REST

  • Navegue até IDE > Servidores de dados > Seu servidor de dados REST > Detalhes
  • Clique em Mais > Super objetos
  • Clique em + Objeto REST
  • Nomeie seu objeto REST... assumiremos Clientes
  • Clique no ícone de marca de seleção para salvar
  • Clique no ícone de edição de lápis
  • Habilite Inserir, Atualizar e Excluir clicando, conforme apropriado
  • Clique em prosseguir ou no ícone de marca de seleção para salvar

Configurar Comp Único

  • Clique no ícone Abrir registro para o objeto REST
  • Clique no ícone Comp único
  • Adicione a tabela clientes (obter)/itens ao painel Tabelas
  • Clique no "*" botão para adicionar todas as colunas
  • Clique duas vezes na coluna customerId e defina como uma Chave Primária
  • Passe por cada coluna por vez e defina o Tipo de Dados Lógicos apropriadamente
  • Observe que se você clicar em Resultados antes de configurar o Many Comp (abaixo), você receberá uma mensagem de erro "Sem sequência". Você precisará configurar o objeto Many primeiro.
  • Retorne à tela Objetos REST

Configurar Muitos Comp

  • Clique no ícone Many Comp
  • Adicione a tabela customers (get)/items ao painel Tables
  • Clique no "*" botão para adicionar todas as colunas
  • Defina as colunas Target para seus nomes de coluna correspondentes
  • Clique duas vezes na coluna customerId e defina como uma Chave Primária
  • Clique em Resultados e verifique se você vê os dados apropriados
  • Retorne à tela Objetos REST

Configurar Endpoints CRUD

Para cada lista de operação CRUD, configure o Endpoint e as Ligações conforme a tabela abaixo:

Operação CRUD Endpoint Vinculação (Objeto REST) Vinculação (Endpoint)
Excluir clientes (delete) customerId item/customerId
Inserir clientes (inserir) customerId item/customerId
" " diasAtivos item/diasAtivos
" " nome item/nome
Atualizar clientes (atualização) customerId item/customerId
" " diasAtivos item/diasAtivos
" " nome item/nome

Agora você deve conseguir clicar no botão Resultados no seu Objeto REST e adicionar/excluir/atualizar linhas.

Eventos Personalizados

Os objetos REST podem definir eventos personalizados de forma semelhante a outros App Builder objetos de Dados. Para adicionar um evento personalizado ao seu Objeto REST, você precisará:

  • Crie um Endpoint de evento personalizado
  • Crie uma regra CRUD para inserir no Endpoint
    • Você precisará de um aplicativo configurado com a fonte de dados
  • Adicione um evento personalizado ao objeto REST

Criar Endpoint de Evento Personalizado

Em {{nm.ab}}, um evento personalizado em uma tabela pode ser chamado usando esta notação de URL:

https://example.com/rest/v1/northwinds/mytable(myevent)/{{colunachaveprimária}}

Por exemplo, se continuarmos usando o exemplo acima, o seguinte Endpoint teria como alvo um evento "maiúsculo" na tabela "clientes":

customers(uppercase)/{{item/clienteId}}

Para configurar isso, faça o seguinte:

  • Adicione um evento uppercase ao {{nm.ab}} mesa
  • Agora configure o lado de consumo REST...
  • Navegue até IDE > Servidores de dados > Seu servidor de dados REST > Detalhes
  • Clique em + Endpoint no painel Endpoints e configure as seguintes informações

    • Nome: clientes (maiúsculas)
    • Endpoint: customers(uppercase)/{{item/clienteId}}
    • Método: POST
    • Entrada de amostra - {{nm.ab}} espera que a entrada esteja no seguinte formato:

      {
        "item": {
          "customerId": "abcde"
        }
      }
      
  • Clique em Salvar

  • Clique em Descobrir
  • Selecione o endpoint do seu cliente (letras maiúsculas)
  • Clique duas vezes na tabela clientes (maiúsculas)
  • Defina a coluna customerId como a Chave primária
  • Verifique se as direções da coluna de saída e os tipos de armazenamento são os esperados.

Criar Regra CRUD de Evento Personalizada

Para chamar o endpoint de evento personalizado do seu objeto REST, você precisa criar uma regra que seja inserida no Endpoint.

  • Navegue até App Workbench > Fontes de dados > Selecione sua fonte de dados REST > Lógica
  • Selecione o Endpoint do cliente (maiúsculas)
  • Clique em + Regra no painel Regras e defina o seguinte
    • Nome: Cliente (maiúsculas) Inserir
    • Objetivo: CRUD
    • Ação: Inserir
    • Fonte/Fonte de dados de destino: Sua fonte de dados
    • Alvo: clientes (maiúsculas)
  • Clique em Salvar
  • Na aba Tabelas:
    • Selecione a coluna customerId e defina o item/customerId correspondente como a coluna de destino

Criar Evento em Maiúsculas no Objeto REST

Agora, para conectar tudo, queremos criar o evento Uppercase no objeto REST.

  • Navegue até App Workbench > Data Sources > Select Your REST Data Source > Logic
  • Clique no ícone Events para seu objeto REST
  • No painel Events, clique em + Table Event
  • Defina o Name como Uppercase
  • Clique em Save
  • No painel Actions, clique em Register Existing
  • Selecione a regra Customers (uppercase) Insert
  • Clique em Save
  • Insira ligações explícitas para customerId para customerId
  • Volte para a página Events
  • Clique duas vezes no Uppercase event
  • Defina o escopo Refresh como Row

Você deve estar pronto para chamar o evento personalizado. Para testar, você pode criar uma página com um painel Multi-Row que tenha um botão para chamar o evento.

Classificação, Paginação e Filtragem - Tipo de Uso

As seções a seguir sobre Classificação, Paginação e Filtragem descrevem a configuração do Tipo de Uso em Parâmetros específicos. Os exemplos fornecidos são os nomes dos Parâmetros App Builder usa quando você acessa App Builder por meio de uma interface REST API. Se você estiver acessando outros endpoints de servidor REST API externos, eles terão sua própria lista exclusiva de nomes de parâmetros e formatos de valor para classificação, paginação e filtragem. As informações apresentadas nessas seções são para ajudar você a entender o que cada um dos tipos de uso são e como usá-los, independentemente do nome do parâmetro usado pela REST API que você está acessando. App Builder os parâmetros da API usados nessas seções são documentados em REST API artigo.

Classificação

O tipo de uso que lida com classificação é Request Sort.

  • Request Sort - Defina esse tipo de uso no parâmetro REST que a API usa para classificação. O nome e o conteúdo desse parâmetro serão definidos pelo provedor da API. Para este exemplo, usamos o App Builder nome do parâmetro da API de $sort.

Para Habilitar a Classificação (com an App Builder servidor REST):

  • Navegue até IDE > Data Servers
  • Selecione sua fonte de dados REST
  • Clique em Detalhes
  • Em Parâmetros do serviço da Web, clique em + Parâmetro
  • Defina o Tipo como Consulta
  • Defina o Nome como $sort
  • Deixe o Valor em branco
  • Defina o Tipo de uso como Solicitar classificação
  • Clique no ícone marca de seleção para salvar

Agora você deve conseguir classificar quaisquer dados obtidos usando isso App Builder fonte de dados REST.

Paginação

Os tipos de uso que lidam com paginação são Contagem de solicitações, Limite de solicitações, Deslocamento de solicitações, Número de páginas de solicitações e Total de linhas de respostas.

  • Contagem de Solicitações - Defina este Tipo de Uso no parâmetro REST que a API usa para indicar que você gostaria que uma contagem total de linhas fosse retornada. Algumas APIs não retornam automaticamente uma contagem total em sua resposta e exigem um parâmetro específico como um gatilho. Para este exemplo, usamos o App Builder nome do parâmetro da API de $count.
  • Request Limit - Defina este Tipo de Uso no parâmetro REST que a API usa para significar que você gostaria que uma contagem total de linhas fosse retornada. Algumas APIs não retornam automaticamente uma contagem total em sua resposta e exigem um parâmetro específico como um gatilho. Para este exemplo, usamos o App Builder nome do parâmetro da API de $limit.
  • Request Offset - Defina este Tipo de Uso no parâmetro REST que a API usa para indicar em qual linha você gostaria de começar a retornar dados. Para este exemplo, usamos o App Builder nome do parâmetro da API de $offset.
  • Request Page Number - Defina este Tipo de Uso no parâmetro REST que a API usa para indicar em qual página você gostaria de começar a retornar dados. Algumas APIs usam Page Number em vez de Offset, ou podem oferecer ambos. Você deve definir apenas um para seu endpoint, não ambos. O App Builder a API não define um parâmetro para o número da página.
  • Resposta Total de Linhas - Defina este Tipo de Uso no parâmetro REST que a API usa para retornar uma contagem total de linhas na resposta. Algumas APIs não retornam automaticamente uma contagem total em sua resposta e exigem um parâmetro específico como um gatilho. Veja o tipo de uso Contagem de Solicitações acima.

Para Habilitar a Paginação (com an App Builder servidor REST):

  • Navegue até IDE > Servidores de dados
  • Selecione sua fonte de dados REST
  • Clique em Detalhes
  • Em Parâmetros do serviço da Web, clique em + Parâmetro
    • Defina o tipo como Consulta
    • Defina o nome como $count
    • Defina o valor como true
    • Defina o tipo de uso como Contagem de solicitações
    • Clique no ícone marca de seleção para salvar
  • Em Parâmetros do serviço da Web, clique em + Parâmetro
    • Defina o tipo como Consulta
    • Defina o nome como $limit
    • Deixe o valor em branco
    • Defina o tipo de uso como Limite de solicitação
    • Clique no ícone marca de seleção para salvar
  • Em Parâmetros do serviço da Web, clique em + Parâmetro
    • Defina o tipo como Consulta
    • Definir nome para $offset
    • Deixe o valor em branco
    • Defina o tipo de uso como Solicitar compensação
    • Clique no ícone marca de seleção para salvar
  • Para todos os Endpoints que suportam paginação, navegue até a tabela de Endpoint que contém o parâmetro "count".
    • No nosso exemplo acima, esta seria a tabela customers (get)
    • Defina o tipo de uso da coluna de contagem como Linhas de total de resposta

O botão Carregar mais linhas agora deve funcionar para quaisquer dados recuperados deste Endpoint.

Opções de Exibição do Painel

Quando você configura um painel para exibir dados do Objeto REST, há opções disponíveis no Edge Case que fornecem controle sobre como o painel exibe os registros. Você pode controlar se App Builder carrega um número definido de registros junto com um botão Carregar mais linhas ou se exibe um número definido de registros junto com controles de navegação de paginação na região da barra de ferramentas para carregar mais registros.

Além disso, se a configuração da API REST suportar, você pode definir o número de registros App Builder inicialmente é exibido no painel.

Para Carregar Mais Linhas
  • Navegue até o painel usando o objeto REST como fonte
  • Vá para Design This Page
  • Vá para More > Edge Case para o painel
  • Defina a Paging Option para Load More Rows
Para Habilitar a Paginação
  • Navegue até o painel usando o objeto REST como fonte
  • Vá para Design This Page
  • Vá para More > Edge Case para o painel
  • Defina a Paging Option para Paging
Para Definir o Número de Registros Iniciais Carregados
  • Navegue até o painel usando o objeto REST como fonte
  • Vá para Design This Page
  • Vá para More > Edge Case para o painel
  • Defina Rows Per Request para o valor numérico que você deseja carregar inicialmente

Filtragem

Os Tipos de Uso que lidam com filtragem são Filtro de Solicitação e Filtro de Solicitação (OData). Defina esse tipo de uso no parâmetro REST que a API usa para filtragem. O Filtro de Solicitação é para filtragem simples, enquanto o Filtro de Solicitação (OData) é para filtragem usando o padrão OData. Esse padrão define diferentes condições de filtro. App Builder a API usa o filtro de estilo OData conforme usado em nosso exemplo. Verifique sua documentação específica da API para ver se a filtragem OData é suportada antes de usá-la. Mais informações sobre a filtragem OData podem ser encontradas aqui nesta recomendações da REST API artigo.

Para Habilitar a Filtragem (com an App Builder servidor REST):

  • Navegue até IDE > Servidores de dados
  • Selecione sua fonte de dados REST
  • Clique em Detalhes
  • Em Parâmetros do serviço da Web, clique em + Parâmetro
    • Defina o tipo como Consulta
    • Defina o nome como $filter
    • Deixe o valor em branco
    • Defina o tipo de uso como Filtro de solicitação (OData)
    • Clique no ícone marca de seleção para salvar

Agora você deve conseguir filtrar todos os dados obtidos usando este App Builder fonte de dados REST.

A filtragem por meio de um serviço REST oferece suporte ao seguinte:

Operadores

  • eq– Igual
  • neq– Não é igual
  • gt– Maior que
  • ge– Maior que ou igual
  • lt - Menor que
  • le – Menor ou igual

Limitações

  • Sem operadores aritméticos
  • Nenhum operador lógico ou/não
  • Nenhum operador de agrupamento
  • Nenhuma função de consultar
  • Nenhum aliases de parâmetro