O documento apresenta uma extensão de webservice para Joomla 3 desenvolvida pela No Boss Tecnologia. A extensão permite integrar sistemas e gerar relatórios, aplicando conceitos da arquitetura REST. Exemplos demonstram como consultar notas de alunos em um ERP educacional e buscar cursos de uma universidade usando autenticação e retorno em JSON. Funcionalidades como autenticação, formatos de saída e conexões com bancos de dados são detalhadas.
2. QUEM SOU EU?
• Johnny Salazar Reidel
• Gaúcho, morador do Rio Grande do Sul
• Sócio fundador da “No Boss Tecnologia”
• GERENTE DE PROJETOS WEB NA TI ASAV
• Desenvolvedor Joomla desde 2006
3. O que é um Webservice?
• Solução que integra e comunica aplicações de
diferentes plataformas
• Recebe REQUISIÇÕES HTTP para Retornar DADOS
UTILIZANDO LINGUAGENS UNIVERSAIS
WEBSERVICE
BASE DE DADOS
CLIENTE X
CLIENTE Y
REQUISIÇÃO HTTP
XML, JSON, HTML
4. Nosso Webservice
• Desenvolvido 100% pela “No Boss TECNOLOGIA”
• Permite integrar sistemas
• Gera relatórios
• APLICA CONCEITOS DA ARQUITETURA rest
5. Por que REST?
• Facilidade no desenvolvimento
• Popular
• Funciona sobre protocolo HTTP
6. Motivadores
• Necessidade de integrar um portal EDUCACIONAL
com ERP E APLICAÇÃO MOBILE.
• Dificuldade de liberação de acessos para
aplicações de terceiros acessarem bases DE
DADOS de aplicações internas.
• Dificuldade de encontrar no mercado uma
ferramenta DE INTEGRAÇÃO que seja flexível,
FÁCIL de administrar E com VALOR ACESSÍVEL.
7. Vantagens
• integrações centralizadas entre sistemas
• Interface simples para administração
• ACL para aplicações e serviços
• PADRONIZAÇÃO NOS FORMATOS DE SAÍDA DOS SERVIÇOS
(xml, json E RELATÓRIO)
• Informações podem ser consumidas sem
programação server-side
9. FUNCIONALIDADES
• Cadastro de serviços
• Autenticação (opcional)
• Conexão segura por HTTPS (opcional)
• Formatos de saída JSON, XML e relatório
• Solicitações por método GET ou POST
• Requisições somente a partir de uma url (opcional)
• POSSIBILIDADE DE INSERIR DATA LIMITE DE USO
• Consulta SQL
10. FUNCIONALIDADES
• Cadastro de aplicações
• Definição de responsável pela aplicação
• Geração automática de chaves de identificação
• ACL para definir quais serviços e quais dados
retornados pelo serviço cada aplicação tem
acesso
• POSSIBILIDADE DE INSERIR DATA LIMITE DE USO
16. AUTENTICAÇÃO
• Possui três dados de identificação
• Usuário, chave (appKey) e secret
• Utilizado dois algoritmos combinados com
outros métodos de segurança
• 3DES: utiliza três chaves de 64 bits
• SHA1: possui 160 bits e foi considerado o sucessor do md5
17. AUTENTICAÇÃO
• Em serviços que exigem autenticação:
• É necessário obter um token antes de consumir qualquer dado
• É Necessário envio do appKey no cabeçalho das requisições
• É Obrigatório o uso do método POST
• O token possui um tempo de vida parametrizável
• O token somente é válido para o IP do servidor que realizou a
solicitação
• Pode ser definido como obrigatória a autenticação com HTTPS
18. O que é um Webservice?
• Solução que integra e comunica aplicações de
diferentes plataformas
• Recebe REQUISIÇÕES HTTP para Retornar DADOS
UTILIZANDO LINGUAGENS UNIVERSAIS
WEBSERVICE
BASE DE DADOS
CLIENTE X
CLIENTE Y
REQUISIÇÃO HTTP
XML, JSON, HTML
19. ANALISANDO NA PRÁTICA
• INSTALAÇÃO E Apresentação da extensão
• Exemplos práticos de uso
1. Consulta de notas e faltas de alunos NO ERP
EDUCACIONAL DA TOTVS UTILIZANDO ODBC E MÉTODO GET
2. Busca de cursos de uma universidade UTILIZANDO
AUTENTICAÇÃO, MÉTODO POST E RETORNO POR JSON
• APRESENTAÇÃO DO CÓDIGO FONTE DO EXEMPLO 2
20. Versões do Webservice
FUNCIONALIDADE GRATUITA PAGA
Interface administrativa
Logs de criação e modificação de registros
Autenticação do serviço
Conexão segura por HTTPS
Formato de saída em JSON
Formato de saída em XML
Formato de saída em relatório
Método de solicitação GET
Método de solicitação POST
Restrição de URL solicitante
Parâmetros ilimitados nas consultas SQL
21. Versões do Webservice
FUNCIONALIDADE GRATUITA PAGA
Data de expiração do serviço e/ou aplicação
Exemplos de serviços que consomem informações do Joomla
ACL sobre as informações retornadas pelo serviço
ACL sobre os serviços que cada aplicação pode acessar
Cadastro de responsável pela aplicação
Cadastro ilimitado de base de dados, serviços e aplicação
Geração de chaves de identificação
Conexão com banco de dados MYSQL
Conexão com banco de dados MSSQL
Conexão via ODBC
Teste de conexão de base de dados
22. Data de lançamento
• LANÇAMENTO OFICIAL EM 02 DE JUNHO DE 2014.
• Participantes do Joomla Day Brasil PODEM
concorreR a uma versão paga REALIZANDO DOIS
PASSOS:
1. Siga a No Boss Tecnologia no Facebook;
2. Compartilhe o post que será publicado no final da
apresentação com as hashtags “#jdbr14” e
“#nobosstecnologia”.
23. Funcionalidades futuras
• POSSIBILIDADE DE CONSULTAS SQL com INSERT,
UPDATE e DELETE
• ADIÇÃO DE NOVOS TIPOS DE BANCOS DE DADOS.
Exemplo: POSTGRES
• POSSIBILIDADE DE Extração de arquivos no
formato XLS e PDF nos relatórios
• Botão de geração automática de URL quando
utilizado o método GET
24. CONHEÇA A NO BOSS TECNOLOGIA:
NOBOSS.COM.BR
facebook.com/NOBOSSTECNOLOGIA
johnny@noboss.com.br
linkedin.com/in/johnnymgo
facebook.com/johnnymgo
Obrigado!