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).
- 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:
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.
- Escolha o método GET a partir da lista de métodos
- Copiar o URL
- Clique em enviar
- Voilà:
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).
- Alterar o método para POST
- Inserir o URL
- Clique em enviar
- Adicione a sua nova tarefa
- Assegurem-se de que o sucesso = verdadeiro!
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!
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:
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.
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.