Mudanças entre as edições de "API externa de comunicação"
(Criou página com '==Estrutura== A API do sistema foi criada para comunicar-se com diversas outras APIs de forma padronizada. Para isso, alguns padrões para a criação dessas outras APIs devem...') |
|||
Linha 4: | Linha 4: | ||
São carregadas diversas webparts, que são estruturas que contém os gráficos. Cada gráfico é uma requisição à API de um serviço, pré-cadastrados no cadastro de serviços. | São carregadas diversas webparts, que são estruturas que contém os gráficos. Cada gráfico é uma requisição à API de um serviço, pré-cadastrados no cadastro de serviços. | ||
− | Tipo de indicadores suportados: | + | '''Tipo de indicadores suportados:''' |
*Gráfico | *Gráfico | ||
**Barra | **Barra | ||
Linha 23: | Linha 23: | ||
"period": [] | "period": [] | ||
} | } | ||
− | <syntaxhighlight | + | </syntaxhighlight> |
+ | |||
+ | '''Data(<span style="color: red">obrigatório</span>):''' O formato varia de acordo com o indicador. | ||
+ | '''Filter:''' Não é obrigatório e o formato não varia. | ||
+ | '''Period:''' Não é obrigatório e o formato não varia. | ||
+ | |||
+ | ==Indicador do tipo gráfico== | ||
− | |||
− | |||
− | |||
− | |||
Nos indicadores do tipo gráfico, podemos identificar categorias e séries conforme figura abaixo: | Nos indicadores do tipo gráfico, podemos identificar categorias e séries conforme figura abaixo: | ||
A figura acima representa a interpretação do Highcharts em relação aos dados que são trazidos de uma API. | A figura acima representa a interpretação do Highcharts em relação aos dados que são trazidos de uma API. | ||
+ | |||
Para os gráficos do tipo Barra, Coluna, Área, Areaspline, Pontos ou Linha, espera a seguinte estrutura: | Para os gráficos do tipo Barra, Coluna, Área, Areaspline, Pontos ou Linha, espera a seguinte estrutura: | ||
+ | |||
+ | <syntaxhighlight lang="json" line="1" > | ||
{ | { | ||
"data": [{ | "data": [{ | ||
Linha 75: | Linha 80: | ||
}] | }] | ||
} | } | ||
+ | </syntaxhighlight> | ||
Para o gráfico de pizza, segue o exemplo: | Para o gráfico de pizza, segue o exemplo: | ||
+ | <syntaxhighlight lang="json" line="1" > | ||
{ | { | ||
"data": [{ | "data": [{ | ||
Linha 92: | Linha 99: | ||
}] | }] | ||
} | } | ||
+ | </syntaxhighlight> | ||
Conforme exemplo citado acima, é esperado um objeto “data”. Dentro deste objeto, é necessário um atributo “Id” e um dataName, que representarão um ID (não exibido no gráfico) e o NOME, que é exibido na categoria do gráfico (Ex: Vagas, Inscrições, Aloc, etc). | Conforme exemplo citado acima, é esperado um objeto “data”. Dentro deste objeto, é necessário um atributo “Id” e um dataName, que representarão um ID (não exibido no gráfico) e o NOME, que é exibido na categoria do gráfico (Ex: Vagas, Inscrições, Aloc, etc). | ||
+ | |||
Este id é utilizado como parâmetro de filtro no momento em que é clicado em uma categoria, para realizar o drilldown e exibir um próximo gráfico filtrado por esta categoria. | Este id é utilizado como parâmetro de filtro no momento em que é clicado em uma categoria, para realizar o drilldown e exibir um próximo gráfico filtrado por esta categoria. | ||
+ | |||
Há também um objeto “series” dentro de “data”. Nele é possível identificar um padrão “chave”:“valor”, em que “chave” será apresentado no gráfico com o nome da série (Ex: Berçário, Maternal I, Maternal II, etc) e o “valor” é expressado como quantidade da série (Ex: 71,5; 78,8; etc). | Há também um objeto “series” dentro de “data”. Nele é possível identificar um padrão “chave”:“valor”, em que “chave” será apresentado no gráfico com o nome da série (Ex: Berçário, Maternal I, Maternal II, etc) e o “valor” é expressado como quantidade da série (Ex: 71,5; 78,8; etc). | ||
− | + | ||
+ | ==Indicador do tipo texto== | ||
+ | |||
Há também a possibilidade da criação de indicadores textuais, com o objetivo de fornecer uma informação escrita ao usuário. | Há também a possibilidade da criação de indicadores textuais, com o objetivo de fornecer uma informação escrita ao usuário. | ||
+ | |||
Abaixo segue um exemplo de Json para este tipo de indicador: | Abaixo segue um exemplo de Json para este tipo de indicador: | ||
+ | |||
+ | <syntaxhighlight lang="json" line="1" > | ||
{ | { | ||
− | + | "data": [{ | |
− | { | + | "entity": "6cf424dc-8ec3-e011-9b36-00155d033206", |
− | "entity": "6cf424dc-8ec3-e011-9b36-00155d033206", | + | "id": "1", |
− | "id": "1", | + | "text": "Ciclo Autoral <br/>170.719" |
− | "text": "Ciclo Autoral <br/>170.719" | + | }] |
− | } | + | |
− | ] | + | |
} | } | ||
+ | </syntaxhighlight> | ||
A informação que será exibida pelo indicador será especificada na “chave” text. | A informação que será exibida pelo indicador será especificada na “chave” text. | ||
+ | |||
Nesta chave existe a possibilidade de acrescentar tags html; geralmente se este tipo de indicador for usado em um painel com layout customizado. | Nesta chave existe a possibilidade de acrescentar tags html; geralmente se este tipo de indicador for usado em um painel com layout customizado. | ||
+ | |||
Geralmente as tags mais usadas são para a quebra de linhas e formatação da fonte (tamanho, negrito, itálico, sublinhado, etc). | Geralmente as tags mais usadas são para a quebra de linhas e formatação da fonte (tamanho, negrito, itálico, sublinhado, etc). | ||
− | |||
− | |||
+ | ==Filtros== | ||
+ | |||
+ | O campo “filter” dá a possibilidade de adicionar filtros dos quais podem ser utilizados nos indicadores. É necessário que o recurso do serviço esteja preparada para receber esse filtro. Ex: [http://siteapi.com.br/API/NomeRecurso?anoInicio=2016] | ||
+ | |||
+ | <syntaxhighlight lang="json" line="1" > | ||
{ | { | ||
"filter": [ | "filter": [ | ||
Linha 128: | Linha 147: | ||
] | ] | ||
} | } | ||
− | + | </syntaxhighlight> | |
+ | |||
+ | ==Data de processamento== | ||
O campo “period” é a data de processamento dos gráficos. Esse processamento pode ser feito em somente 1 dia ou em vários dias. | O campo “period” é a data de processamento dos gráficos. Esse processamento pode ser feito em somente 1 dia ou em vários dias. | ||
− | |||
+ | Essas datas deverão ser enviadas no formato de string ou em caso de processamento em mais de 1 dia, deverá ser enviado uma lista de strings. | ||
+ | |||
+ | No sistema será mostrado a data de processamento do gráfico, em caso de processamento em mais de 1 dia será mostrada a data mais atual. | ||
+ | |||
+ | <syntaxhighlight lang="json" line="1" > | ||
{ | { | ||
"period": [“31/12/2014”] | "period": [“31/12/2014”] | ||
Linha 144: | Linha 169: | ||
] | ] | ||
} | } | ||
+ | </syntaxhighlight> | ||
+ | ==Exemplo Completo== | ||
− | + | <syntaxhighlight lang="json" line="1" > | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
{ | { | ||
"period": [ | "period": [ | ||
Linha 211: | Linha 233: | ||
} | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Página Inicial == | ||
+ | |||
+ | [[InfoCenter]] |
Edição das 12h22min de 5 de janeiro de 2017
Índice
Estrutura
A API do sistema foi criada para comunicar-se com diversas outras APIs de forma padronizada. Para isso, alguns padrões para a criação dessas outras APIs devem ser seguidos.
São carregadas diversas webparts, que são estruturas que contém os gráficos. Cada gráfico é uma requisição à API de um serviço, pré-cadastrados no cadastro de serviços.
Tipo de indicadores suportados:
- Gráfico
- Barra
- Coluna
- Área
- Areaspline
- Pontos
- Linha
- Pizza
- Texto
Para que seja exibido o indicador, deve-se seguir o formato JSON pré-definido:
1 {
2 "data": [],
3 "filter": [],
4 "period": []
5 }
Data(obrigatório): O formato varia de acordo com o indicador. Filter: Não é obrigatório e o formato não varia. Period: Não é obrigatório e o formato não varia.
Indicador do tipo gráfico
Nos indicadores do tipo gráfico, podemos identificar categorias e séries conforme figura abaixo:
A figura acima representa a interpretação do Highcharts em relação aos dados que são trazidos de uma API.
Para os gráficos do tipo Barra, Coluna, Área, Areaspline, Pontos ou Linha, espera a seguinte estrutura:
1 {
2 "data": [{
3 "entity": "833061aa-0b6d-e111-a12a-000c29820a8b",
4 "id": "1",
5 "name": "01°CRE",
6 "series": {
7 "Berçário": "5",
8 "Maternal I": "5",
9 "Maternal II": "5"
10 }
11 },
12 {
13 "entity": "833061aa-0b6d-e111-a12a-000c29820a8b",
14 "id": "2",
15 "name": "02°CRE",
16 "series": {
17 "Berçário": "3",
18 "Maternal I": "3",
19 "Maternal II": "3"
20 }
21 },
22 {
23 "entity": "833061aa-0b6d-e111-a12a-000c29820a8b",
24 "id": "3",
25 "name": "03°CRE",
26 "series": {
27 "Berçário": "4",
28 "Maternal I": "4",
29 "Maternal II": "4"
30 }
31 },
32 {
33 "entity": "833061aa-0b6d-e111-a12a-000c29820a8b",
34 "id": "4",
35 "name": "04°CRE",
36 "series": {
37 "Berçário": "7",
38 "Maternal I": "7",
39 "Maternal II": "7"
40 }
41 }]
42 }
Para o gráfico de pizza, segue o exemplo:
1 {
2 "data": [{
3 "entity": "833061aa-0b6d-e111-a12a-000c29820a8b",
4 "id": "1",
5 "name": "Eficincia de válvulas",
6 "series": {
7 "V1":"7.0",
8 "V2":"6.9",
9 "V3":"9.5",
10 "V4":"14.5",
11 "V5":"18.2",
12 "V6":"21.5"
13 }
14 }]
15 }
Conforme exemplo citado acima, é esperado um objeto “data”. Dentro deste objeto, é necessário um atributo “Id” e um dataName, que representarão um ID (não exibido no gráfico) e o NOME, que é exibido na categoria do gráfico (Ex: Vagas, Inscrições, Aloc, etc).
Este id é utilizado como parâmetro de filtro no momento em que é clicado em uma categoria, para realizar o drilldown e exibir um próximo gráfico filtrado por esta categoria.
Há também um objeto “series” dentro de “data”. Nele é possível identificar um padrão “chave”:“valor”, em que “chave” será apresentado no gráfico com o nome da série (Ex: Berçário, Maternal I, Maternal II, etc) e o “valor” é expressado como quantidade da série (Ex: 71,5; 78,8; etc).
Indicador do tipo texto
Há também a possibilidade da criação de indicadores textuais, com o objetivo de fornecer uma informação escrita ao usuário.
Abaixo segue um exemplo de Json para este tipo de indicador:
1 {
2 "data": [{
3 "entity": "6cf424dc-8ec3-e011-9b36-00155d033206",
4 "id": "1",
5 "text": "Ciclo Autoral <br/>170.719"
6 }]
7 }
A informação que será exibida pelo indicador será especificada na “chave” text.
Nesta chave existe a possibilidade de acrescentar tags html; geralmente se este tipo de indicador for usado em um painel com layout customizado.
Geralmente as tags mais usadas são para a quebra de linhas e formatação da fonte (tamanho, negrito, itálico, sublinhado, etc).
Filtros
O campo “filter” dá a possibilidade de adicionar filtros dos quais podem ser utilizados nos indicadores. É necessário que o recurso do serviço esteja preparada para receber esse filtro. Ex: [1]
1 {
2 "filter": [
3 {
4 "id": "AnoInicio",
5 "nameJson": "anoInicio",
6 "values": [
7 “2015”,
8 “2016”,
9 “2017”
10 ]
11 }
12 ]
13 }
Data de processamento
O campo “period” é a data de processamento dos gráficos. Esse processamento pode ser feito em somente 1 dia ou em vários dias.
Essas datas deverão ser enviadas no formato de string ou em caso de processamento em mais de 1 dia, deverá ser enviado uma lista de strings.
No sistema será mostrado a data de processamento do gráfico, em caso de processamento em mais de 1 dia será mostrada a data mais atual.
1 {
2 "period": [“31/12/2014”]
3 }
4
5 {
6 "period": [
7 “31/12/2014”,
8 “31/12/2015”,
9 “31/12/2016”
10 ]
11 }
Exemplo Completo
1 {
2 "period": [
3 “31/12/2014”,
4 “31/12/2015”,
5 “31/12/2016”
6 ],
7 "data": [{
8 "entity": "833061aa-0b6d-e111-a12a-000c29820a8b",
9 "id": "1",
10 "name": "01°CRE",
11 "series": {
12 "Berçário": "5",
13 "Maternal I": "5",
14 "Maternal II": "5"
15 }
16 },
17 {
18 "entity": "833061aa-0b6d-e111-a12a-000c29820a8b",
19 "id": "2",
20 "name": "02°CRE",
21 "series": {
22 "Berçário": "3",
23 "Maternal I": "3",
24 "Maternal II": "3"
25 }
26 },
27 {
28 "entity": "833061aa-0b6d-e111-a12a-000c29820a8b",
29 "id": "3",
30 "name": "03°CRE",
31 "series": {
32 "Berçário": "4",
33 "Maternal I": "4",
34 "Maternal II": "4"
35 }
36 },
37 {
38 "entity": "833061aa-0b6d-e111-a12a-000c29820a8b",
39 "id": "4",
40 "name": "04°CRE",
41 "series": {
42 "Berçário": "7",
43 "Maternal I": "7",
44 "Maternal II": "7"
45 }
46 }],
47 "filter": [
48 {
49 "id": "AnoInicio",
50 "nameJson": "anoInicio",
51 "values": [
52 “2015”,
53 “2016”,
54 “2017”
55 ]
56 }
57 ]
58
59 }