Controllr/API/REST-HTTP
Índice
API
Exemplo de requisição pura. Feita com Telnet para ilustrar como deve ser montada a requisição.
Nestes exemplos estarei usando o IP 192.168.1.2 como EXEMPLO, este IP deverá ser o do servidor que deseja conectar.
POST /login
curl -i -X POST \ -H "Content-Type:application/x-www-form-urlencoded" \ -H "Accept:application/json" \ -d "username=admin" \ -d "password=admin" \ 'http://[$IP-do-servidor]/login'
Requisição de LOGIN
Requisição POST para http://[IP-SERVIDOR]/login Com body username=USER&password=PASS
POST /login
telnet 192.168.1.2 8080 POST /login HTTP/1.1 Host: 192.168.142.23:8080 Content-Type: application/x-www-form-urlencoded Content-Length: 29 username=admin&password=admin
Resposta JSON
Resposta HTTP/1.1 200 OK Server: nginx/1.10.2 Date: Sat, 27 Apr 2019 19:41:49 GMT Content-Type: application/json Content-Length: 17 Connection: keep-alive Set-Cookie: BRBOSCookie=1c248080a70955b1d8bf7b20a1067c7a; expires=Sun, 26 Apr 2020 19:51:49 GMT; path=/ Access-Control-Allow-Credentials: true Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS {"success": true}
POST /login
curl -i -X POST \ -H "Content-Type:application/x-www-form-urlencoded" \ -H "Accept:application/json" \ -d "username=admin" \ -d "password=admin" \ 'http://[$IP-do-servidor]/login'
RESPOSTA - pegar o cookie do cabeçalho Set-Cookie
Na resposta do Login, capturar o cookie que será usado para requisição
Resposta JSON
HTTP/1.1 200 OK Server: nginx/1.10.2 Date: Fri, 20 Apr 2018 20:46:26 GMT Content-Type: application/json Content-Length: 17 Connection: keep-alive Set-Cookie: BRBOSCookie=1c248080a70955b1d8bf7b20a1067c7a; expires=Sat, 20 Apr 2019 20:56:26 GMT; path=/ {"success": true}
Para capturar as informações do Dashboard, fazer uma requisição usando o Cookie previamente autenticado.
POST /controllrctl/dashboard/info
curl -i -X GET \ -H "Accept:application/json" \ -H "Cookie:BRBOSCookie=1c248080a70955b1d8bf7b20a1067c7a" \ 'http://192.168.142.23:8080/controllrctl/dashboard/info'
Capturar Informações do Provedor
POST /site_ctl/config/info
curl -i -X POST \ -H "Content-Type:application/x-www-form-urlencoded" \ -H "Accept:application/json" \ -d "username=teste" \ -d "password=12345678" \ 'http://192.168.142.23/site_ctl/config/info'
POST /site_ctl/config/info
POST /site_ctl/config/info HTTP/1.1 Host: 192.168.142.23 Cookie: BRBOSCookie=1c248080a70955b1d8bf7b20a1067c7a; Content-Type: application/x-www-form-urlencoded Content-Length: 0
Resposta JSON
{ "success": true, "facebook": { "page": "https://www.facebook.com/ispcontrollr", "title": "FACEBOOK" }, "anatel": { "scm": "00000", "title": "Provedor Licenciado" }, "title": "Meu Provedor", "theme": "brbyte-light", "support_open_time": 5, "print_contract": 1, "change_password": 1 }
Alterar senha do Login
POST /session/setpassword
PROPRIEDADE | TIPO | TAMANHO | OBRIGATÓRIO | DESCRIÇÃO |
---|---|---|---|---|
user_password | Texto | 8~16 | Sim | Senha |
user_password_repeat | Texto | 8~16 | Sim | Senha de novo |
POST /session/setpassword
curl -i -X POST \ -H "Content-Type:application/x-www-form-urlencoded" \ -H "Accept:application/json" \ -d "user_password: Nova senha" \ -d "user_password_repeat: Nova senha" \ 'http://192.168.142.23/session/setpassword'
POST /session/setpassword
POST/session/setpassword HTTP/1.1 Host: 192.168.142.23 Cookie: BRBOSCookie=1c248080a70955b1d8bf7b20a1067c7a; Content-Type: application/x-www-form-urlencoded Content-Length: 53 user_password=novasenha&user_password_repeat=novasenha
Resposta JSON
{ "success": true, "total": 1, "results": [ { "client_username": "teste", "client_pk": 1 } ] }
Listagem do Contratos
POST /controllr_client/contract/list
curl -i -X POST \ -H "Content-Type:application/x-www-form-urlencoded" \ -H "Accept:application/json" \ -d "limit: 10" \ -d "start: 0" \ -d "sort: contract_pk" \ -d "dir: ASC" \ 'http://192.168.142.23/controllr_client/contract/list'
Resposta JSON
{ "success": true, "total": 1, "results": [ { "contract_pk": 3, "contract_number": 3, "contract_pay_day": 10, "contract_amount": "1", "contract_date_cad": "2018-05-15 16:19:45" } ] }
Listagem de Cobranças
POST /invoice_ctl/invoice/list
curl -i -X POST \ -H "Content-Type:application/x-www-form-urlencoded" \ -H "Accept:application/json" \ -d "limit: 15" \ -d "start: 0" \ -d "page: 0" \ -d "sort: invoice_date_due" \ -d "dir: DESC" \ 'http://192.168.142.23/invoice_ctl/invoice/list'
Resposta JSON
{ "success": true, "total": 2, "results": [ { "contract_pk": null, "contract_number": null, "invoice_pk": 11, "bank_account_code": "0", "invoice_gn_link": null, "invoice_date_due": "2018-05-11", "invoice_amount_document": "15", "invoice_date_credit": "2018-05-11", "invoice_amount_paid": "15.00", "invoice_type": 1, "invoice_state": 0, "invoice_obs": 4 }, { "contract_pk": null, "contract_number": null, "invoice_pk": 2, "bank_account_code": "0", "invoice_gn_link": null, "invoice_date_due": "2018-05-09", "invoice_amount_document": "123", "invoice_date_credit": "2018-05-14", "invoice_amount_paid": "123.00", "invoice_type": 1, "invoice_state": 0, "invoice_obs": 4 } ] }
Listagem de Conexões
POST /controllr_client/cpe/list
curl -i -X POST \ -H "Content-Type:application/x-www-form-urlencoded" \ -H "Accept:application/json" \ -d "limit: 15" \ -d "start: 0" \ -d "page: 0" \ -d "sort: contract_pk" \ -d "dir: DESC" \ 'http://192.168.142.23/controllr_client/cpe/list'
Resposta JSON
{ "success": true, "total": 1, "results": [ { "network_cpe_pk": 2, "network_cpe_automac": false, "network_cpe_autoip": false, "network_cpe_status": 0, "network_cpe_ip": "", "network_cpe_mac": "", "network_cpe_mac_status": 2, "network_cpe_ip_status": 2, "network_cpe_username": "123", "network_cpe_password": "123", "network_cpe_authentication_type": 3, "network_cpe_date_cad": "2018-05-15 16:20:34", "network_cpe_deleted": false, "network_cpe_commom_interface": null, "network_cpe_commom_device_name": null, "network_cpe_commom_lastip": null, "network_cpe_commom_rates": null, "network_cpe_commom_rx_rate": null, "network_cpe_commom_tx_rate": null, "network_cpe_commom_distance": null, "network_cpe_commom_tx_ccq": null, "network_cpe_commom_signal_rx": null, "network_cpe_commom_signal_tx": null, "network_cpe_commom_noisefloor": null, "network_cpe_commom_idle": null, "network_cpe_commom_tx_bytes": null, "network_cpe_commom_rx_bytes": null, "network_cpe_especdata": null, "network_cpe_commom_rx_ccq": null, "network_cpe_commom_ping": null, "network_cpe_commom_uptime": null, "network_cpe_lending": 0, "network_cpe_lastupdate": null, "network_cpe_reduced_speed": false, "network_cpe_reduced_speed_date": null, "network_cpe_turbo_active": false, "network_cpe_wifi_encryption_type": 0, "network_cpe_wifi_encryption_password": null, "network_cpe_access_login": "", "network_cpe_access_password": "", "network_cpe_access_port": "22", "network_cpe_longitude": "0", "network_cpe_latitude": "0", "network_cpe_circuit_id": "", "network_cpe_circuit_id_hex": null, "network_cpe_fiber": 0, "network_cpe_fiber_onu_mac": null, "network_cpe_fiber_device_pk": null, "network_cpe_fiber_onu_pppoe_svc_name": null, "network_cpe_req_origin": 0, "suppliers_pk": null, "network_devices_pk": 3, "network_cpe_model_pk": null, "radius_plans_pk": 1, "contract_pk": 3, "network_subnets_pk": 1, "client_pk": 1, "panel_pk": 1, "network_cpe_control_pk": 0 } ] }
Listagem de Suportes
POST /controllr_client/support/list
curl -i -X POST \ -H "Content-Type:application/x-www-form-urlencoded" \ -H "Accept:application/json" \ -d "limit: 10" \ -d "start: 0" \ -d "page: 0" \ -d "sort: os_date_entry" \ -d "dir: ASC" \ 'http://192.168.142.23/controllr_client/support/list'
Resposta JSON
{ "success": true, "total": 1, "results": [ { "support_protocol": "2018051515386", "os_obs": "Sua descrição", "os_date_entry": "2018-05-15 15:38:45", "os_date_soluction": null, "os_date_sched": "2018-05-15 15:38:45", "os_done": 0, "os_amount": null, "task_name": "Viabilidade", "task_desc": "Teste de viabilidade técnica para instalação de internet" } ] }
Criação de Suporte Técnico
POST /controllr_client/support/create
curl -i -X POST \ -H "Content-Type:application/x-www-form-urlencoded" \ -H "Accept:application/json" \ -d "priority: 0" \ -d "task_pk: 1" \ -d "phone: 67998083499" \ -d "os_obs: Sua Descrição" \ 'http://192.168.142.23/controllr_client/support/create'
Resposta JSON
{ "success": true, "total": 1, "results": [ { "os_pk": -1, "os_obs": "1.12337081805556", "os_desc": null, "os_date_entry": null, "os_date_soluction": null, "os_date_sched": null, "os_done": null, "os_deleted": null, "os_amount": null, "staff_pk": null, "task_pk": null, "os_create_type": null, "support_pk": null } ] }
Listagem de Tarefas do Suporte Técnico
POST /controllr_client/support/tasklist
curl -i -X POST \ -H "Content-Type:application/x-www-form-urlencoded" \ -H "Accept:application/json" \ -d "sort: task_name" \ -d "dir: ASC" \ 'http://192.168.142.23/controllr_client/support/tasklist'
Resposta JSON
{ "success": true, "total": 6, "results": [ { "task_pk": 5, "task_name": "Desinstalação" }, { "task_pk": 8, "task_name": "Desinstalação Equipamento" }, { "task_pk": 2, "task_name": "Instalação" }, { "task_pk": 3, "task_name": "Suporte Técnico" }, { "task_pk": 4, "task_name": "Troca de Equipamento" }, { "task_pk": 1, "task_name": "Viabilidade" } ] }