Essa é uma revisão anterior do documento!


Web Api

Todo o processo de utilização de uma web api, deve ser aqui descrito. Incluindo a parte pratica e a teórica.

Os documentos utilizados como referencia foram o site de Padrões de Interoperabilidade de Governo Eletrônico - ePING e o Arquivo Diretrizes mantido pelo Estado de Goiás.

Detalhes importantes encontrados dentro do e-Ping do governo federal, que devem ser mencionados. O e-PING pode ser encontrado na integra através do site: http://eping.governoeletronico.gov.br/.

Classificação das especificações técnicas

A legenda adotada dentro do e-ping federal.

Adotado (A): item adotado pelo governo como padrão na arquitetura ePING, tendo sido submetido a um processo formal de homologação. Os componentes com padrão nível Adotado devem ser obrigatoriamente adotados em novos produtos/projetos de TI;

Recomendado (R): item que atende às políticas técnicas da ePING, é reconhecido como um item que deve ser utilizado no âmbito das instituições de governo, mas ainda não foi submetido a um processo formal de homologação. Os componentes de nível Recomendados *não são obrigatórios*, porém sugeridos para adoção em novos produtos/projetos de TI;

Em Transição (T): item que o governo não recomenda, por não atender a um ou mais requisitos estabelecidos nas políticas gerais e técnicas da arquitetura;

Em Estudo (E): componente que está em avaliação e poderá ser adotado, assim que o processo de avaliação estiver concluído.

Sobre Segurança

O item 2.1.7 relata que devemos gerar logs para permitir auditorias e provas materiais, assim como utilizar autenticidade dos registros armazenados. Fica então a cargo do Analista/Owner do projeto se devemos ou não gerar log das operações realizadas. Esta opção precisa estar especificada no requisito quando e quais campos devem ser tratados.

O item 2.1.9 relata que devemos utilizar as regras da ICP-Brasil para controle de acesso, assinatura digital e assinatura de código. Para adotar totalmente as definições de regras do ICP, o sistema como um todo do tribunal de contas do estado de goiás precisará ser reavalido e adaptado para atender nova requisição. Fica também este item a cargo do Analista/Owner do projeto se devemos ou não utilizar estas regras.

Componente Especificação Situação Tabela
Algoritmo para transporte RSA A Tabela 6 – Criptografia
Assinaturas XML Sintaxe e Processamento de assinatura XML (XMLsig) conforme definido pelo W3C A Tabela 7 – Desenvolvimento de Sistemas

Organização e Intercâmbio de Informações

A Comunicação pode ser feita por XML ou por JSON, desde que se mantenha os padrões adotados.

Áreas de Integração para Governo Eletrônico

A forma de comunicação deve ser realizada por Web Service.

Componente Especificação Situação
Protocolo para acesso a Web Service SOAP v1.2, como definido pelo [W3C](http://www.w3.org/TR/soap12-part0/ ) Rest: HTTP/1.1 (RFC 2616) A Tabela 18 – Web Services
Descoberta de Web Services Governamentais [DWSG](http://www.governoeletronico.gov.br/) EPING E Tabela 18 – Web Services

Detalhes importantes encontrados dentro do PIN da Secretária do Estado de Goiás, que devem ser mencionados. Aqui você pode encontrar o documento na integra.

Sobre Segurança

A sugestão é o uso de OAuth2, utilizando o *grant_type=client_credentials*, para permitir o acesso ao token de autenticação.

Exemplo do documento:

 POST https://api.oauth2server.com/token
 grant_type=client_credentials&
 client_id=CLIENT_ID&
 client_secret=CLIENT_SECRET 

Exemplo de uso do OAuth 2.

Organização e Intercâmbio de Informações

A Comunicação pode ser feita por JSON, seguindo os padrões adotados.

Áreas de Integração para Governo Eletrônico

A forma de comunicação deve ser realizada por Web Service via RESTful, usando HTTP.

Documentação

Documentação deve seguir o padrão de Open API, utilizando o Swagger.

Tradução de Nomenclatura

Esperado O que é Exemplo
PageSize limit Utilizado na query string, ex.: Consultar 1000 pessoas qeue tenham idate igual a 18. pessoa?idade=18&limit=1000
Page offset Utilizado na query string, buscar apartir do registro número 2000. Exemplo: Consultar 1.000 pessoas que tenham a idade igual a 18, iniciando pelo 2.000: pessoa?idade=18&offset=2000&limit=1000
TotalCount Content-Range Deve estar no header, ele contêm a quantidade de registros da pagina atual, exibindo 1.000 registros de 10.000: *0-999/1000*

Respostas Esperadas

Estas são as premissas genéricas de comunicação:

  • 1xx (Informal): A requisição foi recebida, continuando o processo;
  • 2xx (Sucesso) : A requisição foi recebida com sucesso, entendida e aceita;
  • 3xx (Redirecionamento): É necessária alguma ação adicional para que a ação seja concluída;
  • 4xx (Erro Cliente): A requisição contém sintaxe inválida ou não pode ser realizada;
  • 5xx (Erro Servidor): O servidor falhou ao tratar uma requisição aparentemente válida.

Aqui você tem uma relação mais detalhada dos código de retorno esperados pelo cliente.

Código Descrição
200 Requisição completa
204 Sem retorno de dados
206 Existem mais dados a serem retornados
400 Requisição inválida
401 Não autorizado
403 Sem permissão
408 Timeout da requisição
416 Intervalo solicitado inválido
422 Não foi possível processar o conteúdo da mensagem.
500 Erro interno no servidor
503 Serviço indisponível
504 Timeout do Gateway
522 Timeout do Servidor

Escrever/Definir.

  • pres/gerti/arquitetura/webapi.1494446818.txt.gz
  • Última modificação: 10/05/2017 20:06
  • por glopes