===== 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 ===== ==== Consultar informações de um roteador ==== == Formato da URL == /devicelist/update/{MAC do roteador} == Método HTTP == GET == 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, retorna as informações do roteador | | 404 | Roteador não encontrado | | 500 | Erro interno do servidor | == Exemplos de Retorno == { "success": false, "message": "device not found" } { "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' } ==== Alterar informações de um roteador ==== == Formato da URL == /devicelist/update/{MAC do roteador} == Método HTTP == PUT == 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 | == Parâmetros do Body == ^ Parâmetro ^ Descrição ^ Formato ^ Obrigatório ^ | 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 | | | | | | | | | | | **Observação**: O parâmetro ''wifi_ssid'' possui limitações que dependem do roteador, como por exemplo o uso de espaços. Existem roteadores que não permitem o uso de espaços para o SSID e existem outros, que embora permitam, podem remover os espaços em brancos. == Exemplo do Body == { "content": { "pppoe_user": "teste", "pppoe_password": "teste123", "wifi_ssid": "FlashMan-AP-Teste", "wifi_password": "senhateste", "wifi_channel": "auto" } } == 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 == { "success": false, "message": "device not found", "errors": [] } { "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 } { "success": false, "message": 'Erro validando os campos, ver campo "errors"', "errors": [ "password": "Este campo deve ter no mínimo 8 caracteres" ] } ==== Habilitar ou desabilitar atualização de firmware de um roteador ==== == Formato da URL == /devicelist/update/{MAC do roteador}/{Release} == Método HTTP == PUT == 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 == { "do_update": true } == 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 == { "success": false, "message": "Erro ao encontrar dispositivo" } { "success": true } ==== Remover registro de roteador ==== == Formato da URL == /devicelist/delete/{MAC do roteador} == Método HTTP == DELETE == 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 == { "success": true } ==== Criar registro de um roteador ==== == Formato da URL == /devicelist/create == Método HTTP == PUT == 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 == { "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" } } == 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 == { "success": false, "message": "Erro no json recebido", "errors": [] } { "success": true, } { "success": false, "message": 'Erro validando os campos, ver campo "errors"', "errors": [ "password": "Este campo deve ter no mínimo 8 caracteres" ] } ==== Enviar comando para um roteador ==== == Formato da URL == /devicelist/command/{MAC do roteador}/{Comando} == Método HTTP == PUT == 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 == { "success": true } ==== Visualizar último log enviado de um roteador ==== ATENÇÂO! Use esta função após o comando de envio de log. == Formato da URL == /devicelist/lastlog/{MAC do roteador} == Método HTTP == GET == 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 == { "success": true, "message": "Não existe log deste roteador" } 'Content-Encoding', 'gzip', 'Content-Type', 'text/plain' ==== Visualizar log de boot de um roteador ==== == Formato da URL == /devicelist/firstlog/{MAC do roteador} == Método HTTP == GET == 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 == { "success": true, "message": "Não existe log deste roteador" } 'Content-Encoding', 'gzip', 'Content-Type', 'text/plain'