Sumário


Objetivo


     Esse documento tem o objetivo de exemplificar o uso da API utilizando todos os métodos implementados.

1 - Métodos


     Existem duas APIs de Metadados: uma para buscar a estrutura (schema) do metadado em formato compatível com o componente Dynamic Form do PO-UI e outra para os dados registrados no formulário.

     Schema API

Esta API retorna a estrutura do metadado, como já informado acima. Ela aceita apenas o método GET e deve ser chamada da seguinte forma:

Chamada Schema API

http://{domínio}:{porta}/api/framework/v1/metadata/schema/form/{idProjeto}

Nesta chamada, idProjeto representa o código do Projeto de Metadados que foi gerado.

     Data API

Esta API possui os verbos GET, POST, PUT e DELETE e permite o gerenciamento dos dados do formulário gerado. Ela deve ser chamada da seguinte forma:

Chamada Dados API

http://{domínio}:{porta}/api/framework/v1/metadata/data/{idProjeto}


1.1 - GET Schema API


Veremos agora mais detalhes sobre a API de schema de Metadados.

GET Schema API

Exemplo de resultado

O resultado da API depende dos campos cadastrados no formulário dinâmico. Segue abaixo um exemplo de resposta desta API.


Resultado JSON
[
  {
    "required": true,
    "mask": "",
    "disabled": false,
    "help": "",
    "key": false,
    "property": "CODCOLIGADA",
    "label": "Código coligada",
    "gridColumns": 12,
    "visible": false,
    "type": "number"
  },
  {
    "required": true,
    "mask": "",
    "disabled": false,
    "help": "",
    "key": false,
    "property": "CODPACIENTE",
    "label": "Código do paciente",
    "gridColumns": 12,
    "visible": false,
    "type": "number"
  },
  {
    "required": true,
    "mask": "",
    "disabled": false,
    "help": "",
    "key": false,
    "property": "CODATENDIMENTO",
    "label": "Código de atendimento",
    "gridColumns": 12,
    "visible": false,
    "type": "number"
  },
  {
    "required": true,
    "mask": "",
    "disabled": false,
    "help": "",
    "key": false,
    "property": "CODPROFISSIONAL",
    "label": "Código do profissional",
    "gridColumns": 12,
    "visible": false,
    "type": "number"
  },
  {
    "required": true,
    "options": [
      {
        "label": "Rascunho",
        "value": "0"
      },
      {
        "label": "Finalizado",
        "value": "1"
      },
      {
        "label": "Cancelado",
        "value": "9"
      }
    ],
    "mask": "",
    "disabled": false,
    "help": "",
    "key": false,
    "property": "STATUS",
    "label": "Status do registro",
    "gridColumns": 12,
    "visible": false,
    "type": "number"
  },
  {
    "required": false,
    "mask": "",
    "maxLength": 255,
    "disabled": false,
    "help": "",
    "key": false,
    "property": "NOMEPROFISSIONAL",
    "label": "Nome do profissional",
    "gridColumns": 12,
    "visible": false,
    "type": "string"
  },
  {
    "required": false,
    "mask": "",
    "disabled": false,
    "help": "",
    "format": "dd/MM/yyyy",
    "key": false,
    "property": "DATAREGISTRO",
    "label": "Data do registro",
    "gridColumns": 12,
    "visible": true,
    "type": "dateTime"
  },
  {
    "required": true,
    "mask": "",
    "maxLength": 500,
    "disabled": false,
    "help": "",
    "key": false,
    "property": "PRIMEIRA_INFORMACAO",
    "label": "Primeira informação",
    "gridColumns": 12,
    "visible": true,
    "type": "string"
  },
  {
    "required": false,
    "options": [
      {
        "label": "primeira",
        "value": "1"
      },
      {
        "label": "segunda",
        "value": "2"
      },
      {
        "label": "terceira",
        "value": "3"
      },
      {
        "label": "quarta",
        "value": "4"
      },
      {
        "label": "quinta",
        "value": "5"
      }
    ],
    "mask": "",
    "maxLength": 500,
    "disabled": false,
    "help": "",
    "key": false,
    "property": "SEGUNDA_INFORMACAO",
    "label": "Segunda",
    "gridColumns": 12,
    "visible": true,
    "type": "string"
  },
  {
    "required": false,
    "mask": "",
    "disabled": false,
    "help": "",
    "rows": 5,
    "key": false,
    "property": "DESCRICAO_GRANDE",
    "label": "Descrição principal",
    "gridColumns": 12,
    "visible": true,
    "type": "string"
  },
  {
    "required": true,
    "mask": "",
    "disabled": true,
    "help": "",
    "key": true,
    "property": "IDENTIFICADOR",
    "label": "Identificador do registro",
    "gridColumns": 12,
    "visible": false,
    "type": "number"
  },
  {
    "required": false,
    "mask": "",
    "disabled": false,
    "help": "",
    "booleanTrue": "True",
    "booleanFalse": "False",
    "key": false,
    "property": "ATUALIZADO",
    "label": "Atualizado",
    "gridColumns": 12,
    "visible": true,
    "type": "boolean"
  },
  {
    "columns": [
    {
      "label": "Código Coligada",
      "property": "CDCOLIGADA"
    },
    {
      "label": "Código Medico",
      "property": "value"
    },
    {
      "label": "Medico",
      "property": "label"
    }],
    "required": false,
    "searchService": "metadata/data/PRJ5253888/field/CABECALHO_MEDICO_LOGADO_CRM/lookup",
    "disabled": false,
    "help": "s",
    "order": 14,
    "locationX": 0,
    "locationY": 0,
    "key": false,
    "property": "CABECALHO_MEDICO_LOGADO_CRM",
    "label": "Ident. Profissional",
    "gridColumns": 12,
    "visible": true,
    "type": "string",
    "validate": "metadata/data/PRJ5253888/workflow/23",
  },
]

1.2 - Data API


As regras e dados informados na API de dados para os preenchimentos do Metadado informado na requisição depende dos campos e configurações dos mesmos dentro projeto criado.

Chamada Data API

Segue abaixo um exemplo de retorno de dados em uma chamada de busca de listagem para um formulário com o schema do exemplo acima.

Exemplo de GET All
{
  "hasNext": false,
  "items": [
    {
      "id": "7",
      "CODCOLIGADA": 2,
      "CODPACIENTE": 98850,
      "CODATENDIMENTO": 200004,
      "CODPROFISSIONAL": 19,
      "STATUS": 1,
      "NOMEPROFISSIONAL": "ABÍLIO BARONI SALES",
      "DATAREGISTRO": "2020-07-03T00:00:00",
      "PRIMEIRA_INFORMACAO": "1212",
      "DESCRICAO_GRANDE": "dsfsfsd",
      "IDENTIFICADOR": 7,
      "ATUALIZADO": false,
      "RECMODIFIEDBY": "mestre",
      "RECMODIFIEDON": "2020-07-17T15:44:42",
      "RECCREATEDBY": "mestre",
      "RECCREATEDON": "2020-07-17T10:21:17"
    },
    {
      "id": "8",
      "CODCOLIGADA": 2,
      "CODPACIENTE": 98850,
      "CODATENDIMENTO": 200004,
      "CODPROFISSIONAL": 19,
      "STATUS": 0,
      "NOMEPROFISSIONAL": "ABÍLIO BARONI SALES",
      "PRIMEIRA_INFORMACAO": "12312",
      "DESCRICAO_GRANDE": "sdasdasdasdasd",
      "IDENTIFICADOR": 8,
      "ATUALIZADO": false,
      "RECMODIFIEDBY": "mestre",
      "RECMODIFIEDON": "2020-07-22T14:13:07",
      "RECCREATEDBY": "mestre",
      "RECCREATEDON": "2020-07-17T10:22:28"
    }
]

O funcionamento da API em todos os verbos se dá conforme o Padrão de API TOTVS. No entanto, algumas funcionalidades como seleção de colunas, paginação, objetos complexos e tabelas relacionadas ainda não estão disponíveis.

  • Sem rótulos