Utilizar facilmente a API REST da Qodly

Há alguns meses, anunciamos que Qodly Studio estaria agora disponível em para todos os nossos Parceiros Silver (e superiores).

Qodly Studio for 4D está completamente integrado em 4D, permitindo que 4D Server hospede sua aplicação com páginas web e desktop.

Qodly Studio também está acessível em Qodly, como parte da recém-lançada oferta SaaS de 4D. Essa inovadora solução híbrida low-code é especificamente desenhada para aplicações de negócios baseadas em navegadores web.

Mesmo que já tenha construído aplicações usando a plataforma Qodly, temos mais boas notícias! Agora com 4D 20R5 pode utilizar a API REST de uma aplicação Qodly para trabalhar perfeitamente com seus dados.

Continue lendo para saber mais.

HDI_Qodly_App_REST_API

princípios fundamentais

o sistema de funções e privilégios

Essa caraterística se baseia em um mecanismo de chave API ligado ao sistema de funções e privilégios enviado em 4D 19 R8. É um sistema poderoso e totalmente customizável para proteger seus dados de usuários não autorizados. O acesso aos dados é concedido de acordo com quem está acessando e quais dados são acessados. Isto é feito através da definição de funções.

Antes de começar, obtenha alguns conhecimentos básicos sobre esta funcionalidade.

manipular chaves de API no painel de controlo da Qodly

No painel de controle da Qodly, é fornecido um URL de ponto final para o acesso REST.

Também pode gerar uma chave de API e associá-la a uma função. Esta chave de API fornece acesso REST aos dados expostos na sua aplicação Qodly e permite-lhe executar todas as ações permitidas para a função associada.

Consulte também a documentação da Qodly para conhecer as outras funcionalidades relacionadas com as chaves API (definir uma data de expiração, autorizar alguns IPs de clientes, … etc.)

Utilizar a API REST de uma aplicação Qodly

Pode direcionar a API REST de sua aplicação Qodly a partir de:

  • uma aplicação 4D Server (usando o comando Open datastore ou a classe HTTPRequest )
  • Qualquer aplicação de terceiros compatível com pedidos REST

 

Cenário

Considere uma aplicação Qodly que gere produtos, expondo uma classe de dados de produto. Uma aplicação 4D Server(Factory) precisa usar a API REST para ler ou criar produtos. Os produtos da aplicação Qodly estão protegidos contra o acesso não autorizado através do sistema de papéis e privilégios.

preparar o acesso à API REST

Primeiro, configure as funções que têm permissão para executar ações específicas em dados definidos utilizando a interface Funções e Privilégios no Qodly Studio.

blank

A leitura da classe de dados do produto é permitida para a função Funcionário devido ao nível de privilégio “simples” que possui.

blank

 

blank

 

Para permitir que uma aplicação cliente utilize a API REST da aplicação Qodly Products, geramos no painel de controle Qodly Products uma chave API associada à função Employee:

blank

usar a API REST da aplicação Qodly Products numa aplicação 4D Server com o comando open datastore

Na aplicação cliente 4D Server(Factory), a lista dos produtos deve ser exibida.

Aqui está o código 4D:

Form.products:=ds.getProducts("Employee")

E aqui está a classe DataStore:

Class extends DataStoreImplementation

exposed Function getProductsDatastore($apiKey : Text; $id : Text) : 4D.DataStoreImplementation
	
        //End point URL dado no dashboard de Qodly
	var $connect : Object:={hostname: "https://xxx-yyyyyyyy-zzzz-xxxx-yyyy-zzzzzzzzzzzz.xx-yyy.acme.com"; tls: True}
	var $theRemoteDS : 4D.DataStoreImplementation
	
	$connect["api-key"]:=$apiKey
	
	$theRemoteDS:=Open datastore($connect; $id)
	return $theRemoteDS
	
exposed Function getProducts($role : Text) : 4D.EntitySelection
	
	var $apiKey : Text
	var $theRemoteDS : 4D.DataStoreImplementation
	
	$apiKey:="82c0abfe-0628-4446-b890-9add5509335c"
	
	$theRemoteDS:=This.getProductsDatastore($apiKey; $role)
	
	return $theRemoteDS.product.all()

Na função getProducts(), usamos a chave API correspondente ao papel Employee.
Graças à função getProductsDatastore(), obtemos o objeto datastore correspondente à aplicação Products Qodly. É aberta uma sessão nesta instância Products. Esta contém os privilégios da função Employee.

Assim, com este objeto datastore, podemos executar todas as ações permitidas para a função Employee.

Nota:
– a chave da API deve ser fornecida apenas uma vez (como uma propriedade “api-key” no objeto connect) ao chamar o comando Open datastore
– a URL do ponto final fornecido no painel de controlo Qodly da instância Products é utilizada como nome de anfitrião.
Para uma rápida compreensão, utilizamos a chave da API como um valor codificado no código. Por motivos de segurança, deve estar num arquivo protegido externamente (não sincronizado no GitHub, por exemplo).

Aqui está o resultado da aplicação 4D Server:

blank

use a API rest dos produtos qodly app De qualquer aplicação usando pedidos REST

O exemplo abaixo mostra como usar Postman para executar pedidos REST visando a API REST de uma aplicação Qodly. O HDI em anexo também demonstra como executar esses pedidos utilizando a classe HTTPRequest, JavaScript ou outras tecnologias.

Note que a chave da API deve ser passada no cabeçalho “api-key” para cada pedido REST.

blank

 

Os exemplos acima apresentam alguns dados de leitura, mas você também pode criar, atualizar ou excluir dados usando a API REST.

Saiba mais

Veja o vídeo em anexo para um exemplo completo, desde a criação de uma demonstração sandbox na Qodly até a utilização da API REST.

Visite o site da Qodly para saber mais e manter-se atualizado sobre as novas funcionalidades!

Avatar
• Proprietário do produto - Marie-Sophie Landrieu -Yvert entrou ao time 4D Product como Proprietária do Produto em 2017. Como tal, está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Marie-sophie se formou na Escola de Engenharia de ESIGELEC e começou sua carreira como engenheira da IBM em 1995. Participou em vários projetos (de manutenção e criação) e trabalhou como desenvolvedora de Cobol. Depois trabalhou como designer de UML e desenvolvedora de Java. Suas principais funções foram analisar e redigir requisitos funcionais, coordenar os times de negócio e de desenvolvimento.