Skip to content
RodrigoDornelles edited this page Feb 12, 2020 · 7 revisions

Manual de utilização da API

Aviso! está api é de exclusividade de Dynamika Soluções Web LTDA e só funcionara em projetos utilizando a estrutura da mesma, o código fonte demostrado está documentado para utilização de terceiros sobre o consumo e funcionamento do serviço, não deve ser possível instalar em outra estrutura!

Geral

Este serviço restfull funciona como uma extensão projetos que utilizam o framework YII2, permite que terceiros possam acessar de formas simples os dados da aplicação, e possa utilizar em outros projetos.

Diagrama UML

diagrama_uml

Ciclo de Vida

  • Requisição um aplicativo de terceiros faz uma solicitação de dados para o projeto
  • Processamento o Controller da API utiliza esta extensão para processar os a requisição
  • Busca Conforme o modulo solicitado é feito uma busca pelos registros
  • Saida Os resultados obtidos após serem processados são apresentados em json

Legenda

Simbolo Descrição
resultado resultado
request requisição

Framework Yii2

Alguns tópicos importantes para sobre a base da API para entender melhor o seu funcionamento:

Utilização

para utilizar a api deve ser fazer uma requisição get que pode ser configurado alguns parametros além dos filtros.

Parametros de Entrada

Parametro Formato Padrão Descrição
modulo string (obrigatório) Model pretendido buscar informações
files boolean false Exibir arquivos vinculados ao modulo
page integer 1 Pagina da requisição
limit integer 1 Numero de registros por pagina
size string "mid_" Tamanho das Imagens
sort string "id" Ordenação dos Registros
id integer Alias para ModelSearch[id]
format string "json" Formato de resposta da API
suppress_response_code boolean false Suprimir status code e retornar Http Response 200

Observações

  • modulo obrigatório para requisição de dados na API
  • suppress_response_code caso optar por suprimir erros no status code, você ainda pode obter o HTTP Code pelos dados do Json
"success": false,
"count": 0,
"data": {
    "name": "Forbidden",
    "message": "Não autorizado!",
    "code": 0,
    "status": 403 <---
}

Parametros de Saida

Parametro Formato Descrição
success boolean Sucesso na requisição
count integer Quantidade de registros
data mixed Dados obtidos

Formato de Resposta

utilizando o parâmetro de entrada format pode escolher o modo de retorno da requisição diferente do padrão escolhido pelo projeto.

request code Descrição
/api?format=json 200 Json
/api?format=jsonp 200 Json with padding
/api?format=xml 200 Xml
/api?format=yaml 200 Yaml
/api?format=php 200 PHP Array
/api?format=txt 415 Formato Inválido

Formatos Aceitos

tipos de saída da api que podem ser utilizados

Json Xml Yaml PHP
json_response xml_response yaml_response php_response

Exemplo de Formato Inválido

se for escolhido um formato inválido o erro sera exibido no formato padrão do projeto.

"success":false,
"count":0,
"data":{
    "name":"Unsupported Media Type",
    "message":"The requested response format is not supported: txt",
    "code":0,
    "status":415
}

Requisições

exemplificações de como podem ser feitas as requisições para API, e demonstração dos resultados obtidos.

Api/Status

request code Descrição
/api 200 Verificar estado de funcionamento da API
"success": true,
"count": 0,
"data": {
    "message": "API está funcionando!"
}

Api/Info (em desenvolvimento)

request code Descrição
/api/info 200 Dados sobre o funcionamento da API
"success": true,
"count": 0,
"data": {
    ...
}

Api/View

Visualização de registros do projeto

request code Descrição
/api/view 400 Requisição incompleta
/api/view?modulo=usuario 403 Modulo não autorizado
/api/view?modulo=noticia 200 Registro único
/api/view?modulo=noticia&limit=5 200 Múltiplos registros
  • 1 Requisição incompleta
"success": false,
"count": 0,
"data": {
    "name":" Bad Request",
    "message": "Parâmetros obrigatórios ausentes: modulo",
    "code": 0,
    "status": 400
}
  • 2 Não autorizado
"success": false,
"count": 0,
"data": {
    "name":" Forbidden",
    "message": "Não autorizado!",
    "code": 0,
    "status": 403
}
  • 3 Registro unico
"success": true,
"count": 1,
"data": [
    {
        "id":2442,
        ...
    }
]
  • 4 Múltiplos registros
"success": true,
"count": 5,
"data": [
    {
        "id":2442,
        ...
    },
    ...
]