Histórico da Página
...
Nota | ||
---|---|---|
| ||
Disponível à partir da versão 12.1.6 da linha RM. |
...
Serviço
Todos os dataserver's do RM poderão ser acessados via RESTful através do serviço RMSRestDataServer, sendo esse publicado automaticamente no endereço http://<servidor>:8051/RMSRestDataServer/getAvailableServices e os dados são transmitido no formato json. Por padrão esse serviço é publicado com suporte à CORS, o que permite que as páginas e o serviço em si sejam publicados em servidores diferente.
...
Método | URL | Nome | Descrição |
---|---|---|---|
GET | /getavailableservices?name={name}&start={start}&limit={limit} | GetAvailableServices | Lista de todos os serviços REST dos RMSDataServer's. |
GET | /service/{serviceName}/schema | GetExternalGrammar | Lista o schema dos dados retornados pelo serviço. |
GET | /service/{serviceName} | GetWADL | Lista o WADL do serviço. |
GET | /rest/{dataServerName}/{id} | Get | Retorna o registro do dataserver especificado. |
GET | /rest/{dataServerName}?start={start}&limit={limit}&filter={filter} | GetAll | Retorna lista os registros do dataserver especificado. |
POST | /rest/{dataServerName} | Create | Cria um registro utilizando o dataserver especificado. |
DELETE | /rest/{dataServerName}/{id} | Delete | Remove um registro utilizando o dataserver especificado. |
PUT | /rest/{dataServerName}/{id} | Update | Atualiza o registro do dataserver especificado. |
Segurança por perfil
Todos os dataserver's do RM estão protegidos quando o acesso se dá via RMSRestDataServer. Para que a segurança seja ativada, é necessário que os DataServers sejam decorados com o atributo RMSServerSecurityInfo. Este atributo tem a mesma função que o atributo ActionInfo. Portanto, o módulo e o securityId informados devem ser iguais aos informados nas actions. Caso o atributo não seja encontrado, o acesso ao dataserver será negado.
Para cada DataServer, deve-se definir um ou mais atributos com os devidos parâmetros. Exemplo:
Expandir | ||
---|---|---|
| ||
Serialização das tabelas
vários DataSets incluem tabelas que não fazem parte da definição da entidade que o mesmo representa. Isso gera um erro ao realizar as operações do CRUD através do RMSRestDataServer. Para contornar esse problema, foram adicionadas as propriedade Master e Detail no enumerador TabProps. Essas propriedade devem ser utilizadas para marcar quais tabelas do DataSet serão serializadas. Exemplo:
Seja DS um dataset contém as tabelas A, B e C, sendo que a tabela A tem um relacionamento com a tabela B e a tabela C não faz parte da entidade que o dataset representa (somente dados de controle). Para que o serviço RMSRestDataServer funcione corretamente, a propriedade TabProps.Master deve ser adicionada à tabela A e a propriedade TabProps.Detail deve ser adicionada à tabela B.
Dessa forma somente as tabelas A e B serão serializadas, sendo a B um detalhe de A.
Atenção: Caso exista mais de uma tabela no DataSet marcada como “Master”, somente a primeira tabela, e suas filhas (caso existam), serão serializadas.
Bloco de código | ||||
---|---|---|---|---|
| ||||
DataProps.SetProps(gcoligada, TabProps.Caption, Properties.Resources.SGlbCaptionColigadas, TabProps.Id, "CODCOLIGADA;NOMEFANTASIA", TabProps.Master, true); |