Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
Próxima revisão Ambos lados da revisão seguinte
api_flashman [21/03/2018 17:15]
superuser [Table]
api_flashman [29/01/2019 17:21]
superuser
Linha 1: Linha 1:
 +===== Autenticação =====
 +
 +Todos os métodos da API necessitam de autenticação. É possível utilizar o usuário e senha de acesso via Web.
 +
 +**Tipo da autenticação:​** Basic Auth
 +
 ===== Métodos ===== ===== Métodos =====
-=== Consultar informações de um roteador ===+ 
 +==== Consultar informações de um roteador ​====
  
 == Formato da URL == == Formato da URL ==
Linha 19: Linha 26:
 | MAC do roteador | Endereço MAC do roteador que encontra-se na etiqueta do equipamento | [A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F] | Sim         | | MAC do roteador | Endereço MAC do roteador que encontra-se na etiqueta do equipamento | [A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F] | Sim         |
  
-=== Alterar informações de um roteador ===+== Retorno da Requisição == 
 +^ Status Code ^ Descrição ​                             ^ 
 +| 200         | OK, retorna as informações do roteador |  
 +| 404         | Roteador não encontrado ​               | 
 +| 500         | Erro interno do servidor ​              | 
 + 
 +== Exemplos de Retorno == 
 +<​code>​ 
 +
 +  "​success":​ false, 
 +  "​message":​ "​device not found"​ 
 +
 +</​code>​ 
 + 
 +<​code>​ 
 +
 +  "​success":​ true, 
 +  "​external_reference":​ { 
 +      "​kind":​ '​CPF',​ 
 +      "​data":​ '​123.456.789-00'​ 
 +  }, 
 +  "​apps":​ [], 
 +  _id: '​11:​11:​11:​11:​11:​11',​ 
 +  "​model":​ '​TL-MR3020V1',​ 
 +  "​release":​ '​0004-AIX',​ 
 +  "​pppoe_user":​ '',​ 
 +  "​pppoe_password":​ '',​ 
 +  "​wifi_ssid":​ '​TesteSSID',​ 
 +  "​wifi_password":​ '​SenhaWifi',​ 
 +  "​wifi_channel":​ '​auto',​ 
 +  "​last_contact":​ 2018-01-01T03:​00:​00.000Z,​ 
 +  "​do_update":​ false, 
 +  "​do_update_parameters":​ true, 
 +  "​connection_type":​ '​dhcp',​ 
 +  "​__v":​ 0, 
 +  "​ip":​ '​5.5.5.5',​ 
 +  "​wan_ip":​ '​10.10.10.10'​ 
 +
 +</​code>​ 
 + 
 +==== Alterar informações de um roteador ​====
  
 == Formato da URL == == Formato da URL ==
Linha 49: Linha 96:
 |                 ​| ​                                                            ​| ​         |              | |                 ​| ​                                                            ​| ​         |              |
  
 +== Exemplo do Body ==
 +
 +<​code>​
 +{
 +  "​content":​ {
 +    "​pppoe_user":​ "​teste",​
 +    "​pppoe_password":​ "​teste123",​
 +    "​wifi_ssid":​ "​FlashMan-AP-Teste",​
 +    "​wifi_password":​ "​senhateste",​
 +    "​wifi_channel":​ "​auto"​
 +  }
 +}
 +</​code>​
 +
 +
 +== Retorno da Requisição ==
 +^ Status Code ^ Descrição ​                                                        ^
 +| 200         | OK, retorna as informações do roteador alterado ​                  ​| ​
 +| 404         | Roteador não encontrado ​                                          |
 +| 500         | Erro no servidor, mais informações no body da mensagem de retorno |
 +
 +== Exemplos de Retorno ==
 +<​code>​
 +{
 +  "​success":​ false,
 +  "​message":​ "​device not found",​
 +  "​errors":​ []
 +}
 +</​code>​
 +
 +<​code>​
 +{
 +  "​success":​ true,
 +  "​external_reference":​ {
 +      "​kind":​ '​CPF',​
 +      "​data":​ '​123.456.789-00'​
 +  },
 +  "​apps":​ [],
 +  _id: '​11:​11:​11:​11:​11:​11',​
 +  "​model":​ '​TL-MR3020V1',​
 +  "​release":​ '​0004-AIX',​
 +  "​pppoe_user":​ '',​
 +  "​pppoe_password":​ '',​
 +  "​wifi_ssid":​ '​TesteSSID',​
 +  "​wifi_password":​ '​SenhaWifi',​
 +  "​wifi_channel":​ '​auto',​
 +  "​last_contact":​ 2018-01-01T03:​00:​00.000Z,​
 +  "​do_update":​ false,
 +  "​do_update_parameters":​ true,
 +  "​__v":​ 0
 +}
 +</​code>​
 +
 +<​code>​
 +{
 +  "​success":​ false,
 +  "​message":​ 'Erro validando os campos, ver campo "​errors"',​
 +  "​errors":​ [
 +    "​password":​ "Este campo deve ter no mínimo 8 caracteres"​
 +  ]
 +}
 +</​code>​
 +
 +==== Habilitar ou desabilitar atualização de firmware de um roteador ====
 +
 +== Formato da URL ==
 +
 +<​code>​
 +/​devicelist/​update/​{MAC do roteador}/​{Release}
 +</​code>​
 +
 +== Método HTTP ==
 +
 +<​code>​
 +PUT
 +</​code>​
 +
 +== Formato da Requisição ==
 +
 +^ Parâmetro ​      ^ Descrição ​                                                          ^ Formato ​                            ^ Obrigatório ^
 +| MAC do roteador | Endereço MAC do roteador que encontra-se na etiqueta do equipamento | [A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F] | Sim         |
 +| Release ​        | Identificador de release do firmware. Exemplo: 0001-fab ​            | String ​                             | Não         |
 +
 +== Parâmetros do Body ==
 +
 +^ Parâmetro ​      ^ Descrição ​                                                  ^ Formato ​ ^ Obrigatório ​ ^
 +| do_update ​      | Habilitar ou desabilitar a atualização de firmware ​         | Booleano | Sim          |
 +
 +== Exemplo do Body ==
 +
 +<​code>​
 +{
 +  "​do_update":​ true
 +}
 +</​code>​
 +
 +
 +== Retorno da Requisição ==
 +^ Status Code ^ Descrição ​                                                        ^
 +| 200         | OK, alteração feita com sucesso ​                                  ​| ​
 +| 500         | Erro no servidor, mais informações no body da mensagem de retorno |
 +
 +== Exemplos de Retorno ==
 +<​code>​
 +{
 +  "​success":​ false,
 +  "​message":​ "Erro ao encontrar dispositivo"​
 +}
 +</​code>​
 +
 +<​code>​
 +{
 +  "​success":​ true
 +}
 +</​code>​
 +
 +==== Remover registro de roteador ====
 +
 +== Formato da URL ==
 +
 +<​code>​
 +/​devicelist/​delete/​{MAC do roteador}
 +</​code>​
 +
 +== Método HTTP ==
 +
 +<​code>​
 +DELETE
 +</​code>​
 +
 +== Formato da Requisição ==
 +
 +^ Parâmetro ​      ^ Descrição ​                                                          ^ Formato ​                            ^ Obrigatório ^
 +| MAC do roteador | Endereço MAC do roteador que encontra-se na etiqueta do equipamento | [A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F] | Sim         |
 +
 +== Retorno da Requisição ==
 +^ Status Code ^ Descrição ​                            ^
 +| 200         | OK, roteador foi deletado com sucesso | 
 +| 500         | Erro interno do servidor ​             |
 +
 +== Exemplos de Retorno ==
 +<​code>​
 +{
 +  "​success":​ true
 +}
 +</​code>​
 +
 +==== Criar registro de um roteador ====
 +
 +== Formato da URL ==
 +
 +<​code>​
 +/​devicelist/​create
 +</​code>​
 +
 +== Método HTTP ==
 +
 +<​code>​
 +PUT
 +</​code>​
 +
 +== Parâmetros do Body ==
 +
 +^ Parâmetro ​      ^ Descrição ​                                                          ^ Formato ​                            ^ Obrigatório ​ ^
 +| mac_address ​    | Endereço MAC do roteador que encontra-se na etiqueta do equipamento | [A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F] | Sim          |
 +| release ​        | Identificador de release do firmware. Exemplo: 0001-fab ​            | String ​                             | Não          |
 +| pppoe_user ​     | Usuário PPPoE                                                       | String ​                             | Não          |
 +| pppoe_password ​ | Senha do usuário PPPoE                                              | String ​                             | Não          |
 +| wifi_ssid ​      | Identificação do ponto de acesso sem fio do usuário (SSID) ​         | String ​                             | Não          |
 +| wifi_password ​  | Senha do ponto de acesso sem fio do usuário ​                        | String ​                             | Não          |
 +| wifi_channel ​   | Canal do 802.11 ​                                                    | String ​                             | Não          |
 +|                 ​| ​                                                                    ​| ​                                    ​| ​             |
 +
 +== Exemplo do Body ==
 +
 +<​code>​
 +{
 +  "​content":​ {
 +    "​mac_address":​ "​FF:​FF:​FF:​00:​00:​00",​
 +    "​release":​ "​0001-fab",​
 +    "​pppoe_user":​ "​teste",​
 +    "​pppoe_password":​ "​teste123",​
 +    "​wifi_ssid":​ "​FlashMan-AP-Teste",​
 +    "​wifi_password":​ "​senhateste",​
 +    "​wifi_channel":​ "​auto"​
 +  }
 +}
 +</​code>​
 +
 +== Retorno da Requisição ==
 +^ Status Code ^ Descrição ​                                                        ^
 +| 200         | OK, roteador criado com sucesso ​                                  ​| ​
 +| 500         | Erro no servidor, mais informações no body da mensagem de retorno |
 +
 +== Exemplos de Retorno ==
 +<​code>​
 +{
 +  "​success":​ false,
 +  "​message":​ "Erro no json recebido",​
 +  "​errors":​ []
 +}
 +</​code>​
 +
 +<​code>​
 +{
 +  "​success":​ true,
 +}
 +</​code>​
 +
 +<​code>​
 +{
 +  "​success":​ false,
 +  "​message":​ 'Erro validando os campos, ver campo "​errors"',​
 +  "​errors":​ [
 +    "​password":​ "Este campo deve ter no mínimo 8 caracteres"​
 +  ]
 +}
 +</​code>​
 +
 +==== Enviar comando para um roteador ====
 +
 +== Formato da URL ==
 +
 +<​code>​
 +/​devicelist/​command/​{MAC do roteador}/​{Comando}
 +</​code>​
 +
 +== Método HTTP ==
 +
 +<​code>​
 +PUT
 +</​code>​
 +
 +== Formato da Requisição ==
 +
 +^ Parâmetro ​      ^ Descrição ​                                                          ^ Formato ​                                ^ Obrigatório ^
 +| MAC do roteador | Endereço MAC do roteador que encontra-se na etiqueta do equipamento | [A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F] ​    | Sim         |
 +| Comando ​        | Tipo de comando a ser desempenhado pelo roteador Flashbox ​          | Veja os comandos suportados logo abaixo | Sim         |
 +
 +^ Comando ​ ^ Descrição ​                                                                                                    ^
 +| boot     | Reiniciar roteador Flashbox ​                                                                                  |
 +| rstapp ​  | Apagar senha de login do aplicativo do usuário final                                                          |
 +| rstmqtt ​ | Cuidado! Gera um novo token MQTT. Apenas use esse comando após a remoção do cadastro do roteador no Flashman ​ |
 +| log      | Envia o de log  do roteador para o Flashman. Para ver o log, use o comando de visualizar último log           |
 +
 +== Retorno da Requisição ==
 +^ Status Code ^ Descrição ​                            ^
 +| 200         | OK, comando executado com sucesso ​    ​| ​
 +| 500         | Erro interno do servidor ​             |
 +| 404         | Comando ou roteador não encontrado ​   |
 +
 +== Exemplos de Retorno ==
 +<​code>​
 +{
 +  "​success":​ true
 +}
 +</​code>​
 +
 +==== Visualizar último log enviado de um roteador ====
 +
 +ATENÇÂO! Use esta função após o comando de envio de log.
 +
 +== Formato da URL ==
 +
 +<​code>​
 +/​devicelist/​lastlog/​{MAC do roteador}
 +</​code>​
 +
 +== Método HTTP ==
 +
 +<​code>​
 +GET
 +</​code>​
 +
 +== Formato da Requisição ==
 +
 +^ Parâmetro ​      ^ Descrição ​                                                          ^ Formato ​                                ^ Obrigatório ^
 +| MAC do roteador | Endereço MAC do roteador que encontra-se na etiqueta do equipamento | [A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F] ​    | Sim         |
 +
 +== Retorno da Requisição ==
 +^ Status Code ^ Descrição ​                            ^
 +| 200         | OK, comando executado com sucesso ​    ​| ​
 +| 500         | Erro interno do servidor ​             |
 +| 404         | Roteador não encontrado ​              |
 +
 +== Exemplos de Retorno ==
 +<​code>​
 +{
 +  "​success":​ true,
 +  "​message":​ "Não existe log deste roteador"​
 +}
 +</​code>​
 +
 +<​code>​
 +'​Content-Encoding',​ '​gzip',​
 +'​Content-Type',​ '​text/​plain'​
 +</​code>​
 +
 +==== Visualizar log de boot de um roteador ====
 +
 +== Formato da URL ==
 +
 +<​code>​
 +/​devicelist/​firstlog/​{MAC do roteador}
 +</​code>​
 +
 +== Método HTTP ==
 +
 +<​code>​
 +GET
 +</​code>​
 +
 +== Formato da Requisição ==
 +
 +^ Parâmetro ​      ^ Descrição ​                                                          ^ Formato ​                                ^ Obrigatório ^
 +| MAC do roteador | Endereço MAC do roteador que encontra-se na etiqueta do equipamento | [A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F]:​[A-F] ​    | Sim         |
 +
 +== Retorno da Requisição ==
 +^ Status Code ^ Descrição ​                            ^
 +| 200         | OK, comando executado com sucesso ​    ​| ​
 +| 500         | Erro interno do servidor ​             |
 +| 404         | Roteador não encontrado ​              |
 +
 +== Exemplos de Retorno ==
 +<​code>​
 +{
 +  "​success":​ true,
 +  "​message":​ "Não existe log deste roteador"​
 +}
 +</​code>​
 +
 +<​code>​
 +'​Content-Encoding',​ '​gzip',​
 +'​Content-Type',​ '​text/​plain'​
 +</​code>​