Teste o poderoso servidor 4D REST com o carteiro

Tradução automática de Deepl

4D fornece um poderoso servidor REST que permite o acesso directo aos dados armazenados nas suas bases de dados 4D. Isto torna possível, por exemplo, construir um API para utilizar com uma moderna tecnologia front-end(por exemplo, Angular, React, etc.). Neste post de blogue, vamos fornecer a primeira introdução ao servidor REST robusto 4D. Verá como configurá-lo e testar as operações de criação, recuperação, actualização e eliminação (CRUD) utilizando a ferramenta de teste da API, Postman.

Configurar o servidor REST

NOTA: Se já sabe como configurar um servidor REST e uma base de dados 4D, pode saltar as duas secções seguintes.

Para fazer uso do servidor 4D REST, terá de o configurar primeiro (um único clique para se pôr a funcionar). Basta verificar a opção “Expor como servidor REST” na página “Web/REST resource” das definições da base de dados para os pedidos REST a serem processados:

Criar e configurar a base de dados 4D

  • Este passo pressupõe que já criou uma base de dados e activou o servidor Rest. Vá à sua estrutura e crie uma nova tabela [Tarefas], com dois atributos: Título (Alfa) e Completo (Booleano). Por defeito, todas as tabelas são expostas em REST:

Importante: os nomes das tabelas e campos devem ser compatíveis com JSON (sem caracteres ou espaços diacríticos).

blank

  • Agora, vá em frente e crie formulários de entrada e saída. Introduza algumas tarefas na tabela de Tarefas.
  • No menu Executar, seleccionar Start Web Server (se ainda não tiver sido iniciado), depois seleccionar Test Web Server.
  • Parabéns! Pode agora ler e editar dados dentro do 4D usando apenas pedidos REST.
    Como se pode saber? Fácil, abra um web browser, e após o ENDEREÇO:PORT, insira“/rest”. (Todos os pedidos de URL 4D REST começam com /rest).
    Por exemplo, se quiser obter todas as entidades da classe de dados [Tasks], pode proceder da seguinte forma:

blank

Testar a API com o carteiro

O surpreendente no servidor 4D REST é que a API fornece as operações CRUD(e mais!) … prontas para ir! Não é necessária uma única linha de código para criar, ler, actualizar, ou apagar uma entidade. Tudo está preparado para si. Como todos sabemos, CRUD é o grupo mais importante de operações de base de dados, uma vez que são as principais funções de que os utilizadores necessitam para criar e gerir dados.

Para testar esta incrível API, utilizaremos o Postman (uma excelente ferramenta para testar as APIs RESTful). O Postman oferece uma interface de utilizador elegante para fazer pedidos HTML, tais como GET, POST, PUT/UPDATE, DELETE, e vários outros métodos de pedido.

Nota: A utilização do carteiro é simples, no entanto, verifique este vídeo se precisar de ajuda para começar.

Obter a lista de tarefas

Uma vez descarregado o carteiro, lança-o, e nós criaremos os nossos diferentes pedidos. Começaremos com o pedido mais óbvio: Recuperar a lista de tarefas (da nossa tabela [Tarefas]). Como foi dito anteriormente, para obter todas as entidades da classe de dados [Tasks], não se esqueça de inserir /rest/NameOfTheDataclass após o ENDEREÇO:PORT.

  1. Escolha o método GET a partir da lista de métodos
  2. Copiar o URL
  3. Clique em enviar
  4. Voilà:

blank

Como pode ver, não é necessária uma única linha de código para recuperar a lista de tarefas!

Criar uma nova tarefa

Também podemos acrescentar uma nova tarefa ao nosso dataclass … também sem código. A API já está definida para si!

Para criar uma nova entidade, este URL acenderá um novo pedido de publicação: ENDEREÇO:PORT/rest/NameOfTheDataclass/?$method=actualização. Para o fazer, precisamos de enviar um pedido JSON para a aplicação. Se verificar os resultados do pedido de GET, terá uma ideia das chaves necessárias para criar uma nova tarefa. Por isso, seguindo esta lógica, precisaremos apenas do título e dos campos completos; 4D trata do resto (chave, carimbo da hora, carimbo e ID).

  1. Alterar o método para POST
  2. Inserir o URL
  3. Clique em enviar
  4. Adicione a sua nova tarefa
  5. Assegurem-se de que o sucesso = verdadeiro!

blank

Volte ao primeiro separador (método GET), clique em Enviar, e verifique se a tarefa foi adicionada. Pode também ir ao seu formulário de saída 4D para ver se a nova tarefa foi adicionada!

blank

Actualizar uma tarefa

Para actualizar uma entidade, utilizaremos o mesmo método que utilizámos quando criámos a entidade. O método $method=update permite actualizar uma ou mais entidades num único POST. Para o fazer, é necessário passar os parâmetros __KEY e __STAMP no objecto, juntamente com quaisquer atributos modificados.

No nosso exemplo, acabámos de ler uma das obras mais duradouras de Hemingway: O Velho e o Mar. Por conseguinte, precisamos de alterar o estado completo da tarefa para verdadeiro. Fácil:

blank

Apagar uma tarefa

A eliminação de uma entidade também é simples. No nosso exemplo, queremos apagar a tarefa com ID = 3 (chamado “teste”). Não há problema! Chamar o método de apagar e especificá-lo usando o seu ID: dataclass(ID)?$method=delete.

blank

Volte à sua base de dados 4D e verifique se a entidade foi apagada! Foi apagada, não foi?

O que se segue

Como se pode ver, o servidor 4D REST é poderoso. Fornece um API rico para além do que acabámos de demonstrar. Há muito mais que pode ser feito num curto espaço de tempo. Consulte a documentação detalhada. Partilharei uma dica sobre autenticação nos próximos posts no blog, depois uma aplicação de front-end completa escrita em ReactJS com REST para acesso web à base de dados 4D.

Avatar
Gerente de Marketing do Produto - Intissar entrou em 4D em 2017 como Gerente de marketing de Produto. Trabalha junto as equipes do produto, marketing, engenharia e assistência técnica para destacar o ‘por quê’, o ‘como’ e o ‘quê’ das funcionalidades novas e atualizadas a diferentes audiências. Esta proximidade lhe permite elaborar marcos de mensageria e escrever conteúdos profundos e amostras de código para o blog e o website de 4D. Depois de formar-se como engenheira em Ciências da Computação na universidade de VINCI, Intissar trabalhou em várias startups como engenheira de software. Sua experiência prática inclui a especificação, o design e o desenvolvimento de software, a formação e o apoio aos usuários e a gestão de times.