Como obter uma IU Angular para seu aplicativo do InterSystems IRIS em 5 minutos
Olá, Desenvolvedores!
Suponha que você tenha uma classe persistente com dados e queira ter uma IU Angular simples para visualizar os dados e fazer operações CRUD.
Recentemente, @Alberto Fuentes descreveu como desenvolver uma IU Angular para seu aplicativo do InterSystems IRIS usando RESTForms2.
Neste artigo, quero explicar a você como obter uma IU Angular simples para fazer operações CRUD e visualizar seus dados de classes do InterSystems IRIS automaticamente em menos de 5 minutos.
Vamos lá!
Para isso, você precisará do seguinte:
- 1. InterSystems IRIS
- 2. ZPM
- 3. Módulos RESTForms2 e RESTForms2-UI.
Usarei uma classe Data.Countries, que gerei e importei pelo csvgen usando este comando:
d ##class(community.csvgen).GenerateFromURL("https://raw.githubusercontent.com/datasciencedojo/datasets/master/WorldDBTables/CountryTable.csv",",","Data.Countries"
Para criar uma IU Angular, precisamos expor a API REST para essa classe, que servirá as operações CRUD.
Vamos usar o módulo restforms2 para isso.
Esse comando no dockerfile instala restforms2 no contêiner IRIS:
zpm "install restforms2" \
Para adicionar uma API REST, precisamos derivar a classe de Form.Adaptor:
Class Data.Countries Extends (%Library.Persistent, Form.Adaptor)Adicione os parâmetros restforms2 à classe persistente para gerenciar o comportamento geral: parâmetro de classificação, nome de exibição etc.:
// Nome do formulário, e não uma chave global, então pode ser qualquer coisa
Parameter FORMNAME = "Countries";
/// Permissões padrão
/// Objetos desse formulário podem ser Criados, Lidos, Atualizados e Excluídos
/// Redefina esse parâmetro para mudar as permissões para todo mundo
/// Redefina o método checkPermission (veja Form.Security) para essa classe
/// para adicionar a segurança personalizada com base em usuário/funções/etc.
Parameter OBJPERMISSIONS As %String = "CRUD";
/// Propriedade usada para informações básicas sobre o objeto
/// Por padrão, o método getObjectDisplayName recebe seu valor dela
Parameter DISPLAYPROPERTY As %String = "name";
Perfeito. Em seguida, podemos usar a sintaxe restforms2 para informar ao restforms2 quais propriedades queremos expor às operações CRUD. Você pode fazer isso adicionando o atributo "DISPLAYNAME =" às propriedades que você quer expor em restforms2-ui. Exemplo:
Property code As %Library.String(MAXLEN = 250) [ SqlColumnNumber = 2 ];
Property name As %Library.String(DISPLAYNAME = "Name", MAXLEN = 250) [ SqlColumnNumber = 3 ];
Property continent As %Library.String(DISPLAYNAME = "Continent", MAXLEN = 250) [ SqlColumnNumber = 4 ];
Property region As %Library.String(DISPLAYNAME = "Region", MAXLEN = 250) [ SqlColumnNumber = 5 ];
Property surfacearea As %Library.Integer(DISPLAYNAME = "Surface Area", MAXVAL = 2147483647, MINVAL = -2147483648) [ SqlColumnNumber = 6, SqlFieldName = surface_area ];
Property independenceyear As %Library.Integer(DISPLAYNAME = "Independence Year", MAXVAL = 2147483647, MINVAL = -2147483648) [ SqlColumnNumber = 7, SqlFieldName = independence_year ];
Ótimo! Agora vamos introduzir a camada de UI. Esse comando no dockerfile instala restforms2-ui, que é a IU Angular para Restform2:
zpm "install restforms2-ui" \
É isso! Vamos examinar a IU para sua classe, que você pode encontrar no URL server:port/restforms2-ui:



RESTForms são usados com as classes de teste Person e Company, e você pode usar isso para examinar os recursos de restformsUI. No momento, é possível editar campos de string, número, booleano, data e consulta.


Você pode testar tudo isso no seu laptop, se clonar e compilar este repositório:
docker-compose up -d --build
E abrir o URL:
localhost:port/restforms2-ui/index.html
ou, se você usar o VSCode, selecione esse item do menu:

Boa programação e fique ligado!