Suporte REST e Qodly de Singletons

Com 4D 20 R5, lançamos singletons. E com 4D 20 R6, agora permitimos que chame diretamente as funções expostas de seus singletons compartilhados através de chamadas REST. Da mesma forma, pode usar as funções expostas de seus singletons compartilhados em eventos ao projetar suas Qodly Pages. Deixe-me aprofundar estas novas capacidades.

Suporte de Singletons do HDI REST e Qodly

Digamos que pretende criar um serviço REST que não está ligado a uma classe de dados específica.

Fácil!

Primeiro, vamos criar um singleton partilhado com uma função exposta, a que pretende chamar através do REST:

//class mySingleton

shared singleton Class constructor()
	
exposed Function myFonction($value : Integer)
	//code

Em seguida, vamos examinar o catálogo verificando o JSON retornado por myServer/rest/$catalog/$all. Vejo que meu singleton acabou de aparecer com sua função exposta:

"singletons": [
    {
      "name": "mySingleton",
      "methods": [
        {
          "nome": "myFonction",
          "allowedOnHTTPGET": falso,
          "exposed": true
        }
      ]
    }
  ],

Agora posso fazer uma chamada REST para myServer/rest/$singleton/mySingleton/myFonction para executar diretamente minha função exposta.
É claro que é possível restringir chamadas a funções específicas ou singletons configurando privilégios no arquivo roles.json.

Dentro do Qodly, é ainda mais fácil. Ao configurar eventos, pode escolher as funções expostas dos seus singletons partilhados como qualquer função exposta de uma classe de dados:

O Qodly Studio mostra o meu singleton dentro do catálogo e permite-me escolher as suas funções expostas para eventos

Da mesma forma, pode configurar direitos para executar singletons e as suas funções expostas através da tela de privilégios:

blank

A página de funções e privilégios do Qodly Studio permite-me configurar os direitos de acesso do meu singleton

Se quiser um exemplo fácil de utilizar do que pode fazer com os singletons, aconselhamos a consultar o HDI sobre singletons.

Esperamos que estas duas funcionalidades facilitem a sua utilização de singletons.

Se tiver comentários ou observações, não hesite em apresentá-los no nosso fórum!

Nicolas Brachfogel
• Proprietário do produto e Desenvolvedor Senior -Nicolas Brachfogel entrou a 4D em 2017 como Senior Developer (4D Server e Networking). Como Product Owner para gerenciar o lançamento de Apple Silicon, está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais, além de garantir que as implementações de funcionalidade cumpram com as necessidades do cliente. Diplomado pelo Instituto Superior de Informática Aplicada (INSIA), Nicolas começou sua carreira como desenvolvedor de software em 2001. Depois de vários anos codificando em Java e C++, passou a especializar-se no desenvolvimento cliente-servidor para empresas de videogames. Como desenvolvedor/arquiteto de servidores, trabalhou com sucesso nas arquiteturas de servidores de muitos jogos (Dofus Arena, Drakerz, Trivial Pursuit Go!)