Ticket #2507 (closed melhoria: fixed)
Implementar uma camada de WebService no Expresso
Reported by: | niltonneto | Owned by: | niltonneto |
---|---|---|---|
Priority: | normal | Milestone: | Sandbox - API Rest para Expresso 2.2 |
Component: | API | Version: | sandbox |
Severity: | média | Keywords: | api webservice json rpc |
Cc: | WorkGroup: |
Description
Há vários anos, já se sabe que o EgroupWare? possui, em sua API, uma camada para chamadas remotas usando SOAP ou XMLRPC, mas que o Expresso até hoje, nunca precisou utilizá-la. E mesmo que precisasse de um desses padrões, seria necessário revisar, atualizar ou mesmo refazer esta camada de WebService?, já que houve mudança significativa em sua API, construção de novos módulos e novas funcionalidades.
Com a tendência de evolução do Expresso para uma arquitetura orientada a serviços, tanto em sua versão 2.4 quanto em futuras versões (3.0....), com o surgimento de demandas tecnológicas provenientes da interoperabilidade do objeto Expresso com outros serviços e sistemas, da implementação de aplicativos Mobile para acesso ao Expresso, etc... será implementada uma camada de WebService? para o Expresso, que deverá contemplar inicialmente os seguintes itens:
- Compatibilidade com versões do Expresso > 2.2;
- Protocolo de comunicação JSON-RPC;
Toda documentação será publicada a partir do Draft:
Change History
comment:3 Changed 11 years ago by niltonneto
Adicionado em [5668] parâmetro 'search' no método Mail.getUserFolders().
comment:4 Changed 11 years ago by niltonneto
Corrigido em [5670] problema ao retornar cota do usuário (used,limit,percent), somente no Expresso 2.2.
comment:5 Changed 11 years ago by niltonneto
Adicionado em [5681] a primeira parte do método Catalog.getUserContacts().
comment:6 Changed 11 years ago by niltonneto
Adicionado em [5687] melhorias no método Catalog.getUserContacts(), e adicionado método Catalog.getImagePicture().
comment:7 Changed 11 years ago by niltonneto
Corrigido em [5691] problema de acentuação no método Catalog.getUserContacts().
Obs.: O padrão do WebService? é UTF-8.
comment:8 Changed 11 years ago by niltonneto
Adicionado em [5694] diversas melhorias no método Catalog.getUserContacts():
- Padronizado prefixo do nome das variáveis;
- Adicionada variável para sinalizar foto no contato;
- Adicionada variável contendo array de telefones;
comment:9 Changed 11 years ago by niltonneto
Corrigido em [5699] condição invertida 'id_typeof_contact_connection' para emails e telefones.
comment:10 Changed 11 years ago by niltonneto
Implementado em [5707] as seguintes melhorias:
- Modificado alguns atributos e métodos para 'private' e 'protected';
- Adicionado parâmetro 'contactType' para sinalizar busca no contato pessoal ou LDAP;
- Adicionado método que busca contatos do LDAP, utilizando o método "quicksearch" do ExpressoMail?;
- Adicionado parâmetro 'search' no método Mail.getUserContacts, para contatos pessoais ou global;
comment:11 Changed 11 years ago by niltonneto
Adicionado em [5712] busca de foto do contato global (LDAP), no método Catalog.getImagePicture().
comment:12 Changed 11 years ago by niltonneto
Corrigido em [5714] problema do "dn" como "contactID" por causa JSON encode/decode em versões PHP < 5.3
comment:13 Changed 11 years ago by niltonneto
Removido em [5722] log de error no método getUserLdapPhoto().
comment:14 Changed 11 years ago by niltonneto
Implementado em [5889] as seguintes melhorias:
- Adicionado método Expresso.getUserProfile();
- Adicionado método Expresso.getUserPreferences();
- Adicionado no result do método Expresso.login(), informações adicionais e preferências do usuário logado no Expresso;
comment:15 Changed 11 years ago by niltonneto
comment:16 Changed 11 years ago by niltonneto
Implementado em [5954] as seguintes modificações:
- Classe http_request renomeada para HttpRequest? (classe e arquivo);
- Adicionado classe Errors para tratamento centralizado de erros;
- Movido para "library" as classes existentes em "/";
- Corrigido método Catalog.getUserId();
comment:17 Changed 11 years ago by niltonneto
Corrigido em [5956] problema em Catalog, referente ao repasse de ID da requisição.
comment:18 Changed 11 years ago by niltonneto
Modificada em [6061] implementação para tratamento de erros usando ResponseException?.
comment:19 Changed 11 years ago by niltonneto
Corrigido em [6062] rotina que efetua logout do usuário.
comment:20 Changed 11 years ago by asaikawa
Implementado em [6084]:
- Adicionado recurso de envio de email de suporte ou sugestão: Mail.SendSupportFeedback?
- Adicionado na classe Errors, um erro de envio de email
comment:21 Changed 11 years ago by asaikawa
Implementado em [6091]:
- Adicionado recurso de limpar a pasta Lixeira: Mail.CleanTrash?
- Adicionado na classe Errors, um erro de lixeira não pôde ser limpa
comment:22 Changed 11 years ago by asaikawa
Implementado em [6092]:
- Inserido código (jQuery e PHP) contendo a interface de um cliente para a realizacao dos testes de consumo dos webservices
comment:23 Changed 11 years ago by niltonneto
Implementado em [6110] as seguintes melhorias em Expresso.getUserProfile():
- Modificado contactID para carregar userDN do usuário logado;
- Adicionado contactApps para carregar array de aplicações liberadas no Expresso;
comment:24 Changed 11 years ago by niltonneto
Removido em [6119] implementação descontinuada.
comment:25 Changed 11 years ago by niltonneto
Removido em [6121] parâmetro $request desnecessário na chamada do método getResponse().
comment:26 Changed 11 years ago by niltonneto
Adicionada Exception em [6125] para tratamento de erro quando mensagem (msgID) não for encontrada na pasta (msgFolder).
comment:27 Changed 11 years ago by asaikawa
Implementado em [6155]:
- Adicionados os recursos para adicionar, remover e renomear pastas: Mail.AddFolder?, Mail.DelFolder? e Mail.RenameFolder?
- Adicionados erros tratados nos recursos adicionados
comment:28 Changed 11 years ago by asaikawa
Implementado em [6156]:
- Atualização do restclient com os testes das operações de adicionar pasta, remover e renomear.
comment:29 Changed 11 years ago by niltonneto
Refatorado e centralizado em [6165] todo tratamento de erros no WS, encapsulando ResponseException? e gerando um arquivo para registro dos erros por código, chave e mensagem.
comment:30 Changed 11 years ago by asaikawa
Implementado em [6166]:
- Inserida a validação da quantidade máxima de pastas na operação de adicionar pasta
- Mesmo passando por todas as validações, na remoção de pasta ocorria um erro. Como solução paliativa, antes de realizar a remoção está sendo feita a reinstanciação da classe imap. É necessário verificar o que ocorre com este objeto durante as validações, para que ele não precise ser reinstanciado.
comment:31 Changed 11 years ago by niltonneto
Corrigido em [6191] query SQL que executa busca de contatos pessoais, para melhorar rotina de pesquisa, bem como permitir que procure também por email.
comment:32 Changed 11 years ago by niltonneto
comment:33 Changed 11 years ago by niltonneto
Implementado em [6239] mapeamento dos módulos do Expresso, para liberar acesso no Web Service, através de arquivo de configuração (user.ini), baseado na ACL do usuário logado.
comment:34 Changed 11 years ago by niltonneto
Adicionado em [6241] valor padrão = "4" para o mínimo de caracteres exigidos na busca de contatos, mantendo a compatibilidade com API do Expresso 2.2, já que na 2.4 este valor é uma configuração do servidor.
comment:35 Changed 11 years ago by niltonneto
Alterado em [6247] implementação do campo "to" na lista de mensagens, conforme modificação feita na class imap_functions do Expresso 2.4
comment:36 Changed 11 years ago by niltonneto
Implementado em [6256] as referidas validações nas variáveis de retorno, para evitar possíveis erros de implementação no lado do cliente, em consequência da nulidade das mesmas.
comment:37 Changed 11 years ago by niltonneto
Corrigido em [6267] valor de retorno da variável "msghasattachments" para API 2.2
comment:38 Changed 11 years ago by niltonneto
Implementado em [6273] condição que permite utilizar os recursos disponíveis no Web Service, conforme usuário logado na aplicação Web do Expresso, sem precisar repassar o "auth" para validação de sessão.
comment:39 Changed 11 years ago by niltonneto
Implementado em [6274] condição dentro recurso "ContactPictureResource?", para retornar foto do usuário logado, quando "contactID" for nulo.
comment:40 Changed 11 years ago by niltonneto
comment:41 Changed 11 years ago by niltonneto
Implementado em [6307] recurso "Mail/Attachment?" para permitir o download de anexo.
comment:42 Changed 11 years ago by niltonneto
- Implementado em [6311] no restclient, botão para retornar foto do usuário logado, quando "contactID" não for enviado para o recurso "ContactPictureResource?".
- Implementado em [6312] no restclient, selectbox para efetuar download de anexo a partir do recurso "Mail/Attachment?".
comment:43 Changed 11 years ago by niltonneto
- Adicionado em [6322] alguns parâmetros no Recurso "Mail/Attachment?", para manter compatibilidade com versão 2.2;
- Modificado em [6323] implementação do restclient, para manter compatibilidade com versão 2.2;
comment:44 Changed 11 years ago by asaikawa
comment:45 Changed 11 years ago by niltonneto
Adicionado em [6382] no Restclient, a biblioteca json2.js para compatibilizar parserJSON com versões do IE < 9.
comment:46 Changed 11 years ago by niltonneto
Efetuado em [6383] melhorias na página de testes do Restclient.
comment:47 Changed 11 years ago by asaikawa
comment:48 Changed 11 years ago by niltonneto
- Modificado em [6489] implementação para envio de email através do recurso "Mail/Send?".
- Modificado em [6493] implementação para permitir anexos no envio de email, através do recurso "Mail/Send?".
comment:49 Changed 11 years ago by pereira.jair
Modificado em [6495] implementação para deletar mensagens de email através do recurso "Mail/DelMessage?"
comment:50 Changed 11 years ago by asaikawa
Corrigido em [6515] o retorno de strings acentuadas no Recurso Events
comment:51 Changed 11 years ago by pereira.jair
Alteracao do ExpressoVersion? para retornar a apiVersion na revisao [6554].
comment:52 Changed 11 years ago by niltonneto
Corrigido em [6601] padrão de charset para todos os parâmetros recebidos, conforme definição de charset do Webservice (convencionado como UTF-8), já que a API atual do Expresso utiliza ISO-8859-1.
comment:53 Changed 11 years ago by niltonneto
Corrigido em [6602] condicional para traduzir nome da pasta INBOX (versão 2.2).
comment:54 Changed 11 years ago by niltonneto
comment:55 Changed 11 years ago by niltonneto
Corrigido em [6617] envio de email (versão 2.4), respeitando preferência para salvar ou não após o envio.
comment:56 Changed 11 years ago by niltonneto
Adicionada em [6664] implementação para enviar email com anexo na versão 2.4 (conforme nova API).
comment:57 Changed 11 years ago by niltonneto
Implementado em [6666] verificação de limite do tamanho de anexos para envio de email, conforme configuração do administrador (qualquer versão).
comment:58 Changed 11 years ago by niltonneto
Implementada em [6701] pesquisa de mensagens para API do Expresso 2.2.
comment:59 Changed 11 years ago by niltonneto
Corrigido em [6775] problema referente à paginação de mensagens.
comment:61 Changed 11 years ago by viani
- Status changed from assigned to closed
- Resolution set to fixed
comment:62 Changed 11 years ago by viani
- Status changed from closed to reopened
- Resolution fixed deleted
comment:63 Changed 11 years ago by alexandrecorreia
comment:64 Changed 11 years ago by alexandrecorreia
Revisão [7469] - Ajustando os encodings dos parametros para caixa postal.
comment:65 Changed 11 years ago by alexandrecorreia
Revisão [7470] - Ajustando os encodings dos parametros para caixa postal.
comment:66 Changed 11 years ago by pereira.jair
Revisão [7577] - Correção da varíavel global DIR que dependendo da configuração do apache estava sendo definida de forma incorreta, também foi feita a liberação do Resource ExpressoVersion? para o método GET.
comment:67 Changed 10 years ago by pereira.jair
Revisão [7740] - Correção do Resource de Eventos que estava retornando somente o primeiro resultado.
comment:68 Changed 10 years ago by alexandrecorreia
Revisão [7807]- Criado novo cliente REST, que servirá para testes no Expresso e também será utilizado como uma documentação de apoio aos desenvolvedores para os recursos.
comment:69 Changed 10 years ago by alexandrecorreia
comment:70 Changed 10 years ago by alexandrecorreia
As revisões a seguir foram modificações dentro da API REST e no novo client REST para teste do Expresso, segue :
comment:71 Changed 10 years ago by viani
- Status changed from reopened to closed
- Resolution set to fixed
Adicionado em [5594] [5595] Subprojeto inicial contendo arquivos e pastas.