Documentação da API REST do Expresso

RECURSOS DISPONÍVEIS NA API

Através da lista de recursos abaixo, você poderá realizar testes no ambiente de demonstração da API REST disponibilizada pelo Expresso.

Atualmente os seguintes recursos estão disponibilizados:

  • Login - Realiza a autenticação do usuário, gerando uma chave de autenticação;
  • Logout - Desloga o usuário, invalidando a chave de autenticação;
  • ExpressionVersion - para verificar a versão atual do Expresso;
  • Mail/Folders - Lista a Pasta do Usuário;
  • Mail/AddFolder - Adiciona uma nova pasta;
  • Mail/Messages - Retornas as mensagens do usuário;
  • Mail/Attachment - Retorna o anexo da mensagem para o download;
  • Mail/Send - Envia uma mensagem de email;
  • Mail/RenameFolder - Renomeia uma pasta;
  • Mail/DelFolder - Exclui uma pasta;
  • Mail/CleanTrash - Limpa a lixeira;
  • Mail/SendSupportFeedback - Envia uma mensagem de sugestão para o administrador do Expresso;
  • Catalog/Contacts - Retorna os contatos do catálogo pessoal e geral;
  • Catalog/ContactPicture - Retorna a foto de um contato em BASE64;
  • Calendar/Events - Retorna os eventos do calendário;
  • Admin/CreateUser - Criação de usuários (necessário ter permissão de acesso no módulo expressoAdmin).
  • Admin/SearchUser - Procura de usuários (necessário ter permissão de acesso no módulo expressoAdmin).
  • Admin/DeleteUser - Exclusão de usuários (necessário ter permissão de acesso no módulo expressoAdmin).
  • Admin/EditUser - Edição de usuários (necessário ter permissão de acesso no módulo expressoAdmin).
  • Admin/RenameUser - Renomeação de usuários (necessário ter permissão de acesso no módulo expressoAdmin).
  • Admin/UpdateUser - Atualização de usuários (necessário ter permissão de acesso no módulo expressoAdmin).

COMO FUNCIONA A API REST

Para ter acesso a um dos recursos listados acima, é necessário que sua aplicação realize uma requisição HTTP pelos métodos( GET, POST ), para a URL que é formado pelo endereço do servidor Expresso mais o nome do recurso que deseja utilizar.

Cada recurso possui um conjunto de parâmetros que são necessários para atender as requisições enviadas ao servidor do Expresso.

Com exceção do recurso ExpressionVersion, todos os outros recursos necessitam de uma autenticação ( usuário e senha, que retornará uma chave de acesso ).

Informe a URL de contexto da sua API:

Chave de Autenticação

USUÁRIO NÃO AUTENTICADO

Um exemplo de código de uma chamada AJAX, utilizando a Jquery. Para enviar parâmetros consulte a aba Recursos,onde é demonstrado o envio destes parâmetros e quais deverão ser enviados a cada resource.

Utilizando o Ajax da Jquery

                        $.ajax(
                        {
                            type 	: "POST",
                            url 	: "client_rest.php",
                            data	:
                            {
                                id          : < ID >
                                params      : < ENVIE AQUI SEUS PARAMETROS EM FORMATO JSON Exemplo : {"param1":"valor"} >
                                serverUrl   : "http://expresso.pr.gov.br/api/rest/< RESOURCE REST >",
                                methodType  : "POST"
                            }
                        });
                    

O resource ExpressoVersion não necessita de parâmetros e responde a versão do Expresso e a versão da API REST. No trecho abaixo é demonstrado um código que utiliza este resource.

Veja este exemplo funcionando ( BAIXAR ESTE EXEMPLO).

Enviando as informações com Javascript

                        $.ajax(
                        {
                            type 	: "POST",
                            url 	: "client_rest.php",
                            data	:
                            {
                                id          : "";
                                params      : "";
                                serverUrl   : "http://expresso.pr.gov.br/api/rest/ExpressoVersion",
                                methodType  : "POST"
                            },
                            beforeSend: function()
                            {
                                // Coloque aqui seu código;
                            },
                            success: function(response)				
                            {
                                //Coloque aqui seu código;
                            },
                            error: function(response)
                            {
                                //Coloque aqui seu código;
                            }
                        });
                    

Recebendo as informações no PHP

                        <?php

                            $serverUrl  = $_REQUEST['serverUrl'];
                            $methodType = $_REQUEST['methodType'];
                            $params     = $_REQUEST['params'];
                            $id         = ( $_REQUEST['id'] ) ? $_REQUEST['id'] : time();
                            
                            $data = "id=".$id."&params=" . stripslashes($params);

                            function callJSONRPC($url, $data, $method)
                            {
                                $ch = curl_init();
                                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                                
                                if($method == "POST"){
                                    curl_setopt($ch, CURLOPT_POST, 1);
                                    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
                                }
                                
                                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                                curl_setopt($ch, CURLOPT_URL, $url);
                                curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded"));
                                
                                $result     = curl_exec($ch);
                                $errorCode  = curl_getinfo($ch,CURLINFO_HTTP_CODE);
                                $lastURL    = curl_getinfo($ch,CURLINFO_EFFECTIVE_URL);
                                
                                curl_close($ch);
                                
                                switch($errorCode)
                                {
                                    case 200:
                                        break;

                                    case 404:
                                        $result = json_encode(array("error" => array("code" => 404, "message" => "RECURSO NAO ENCONTRADO => $lastURL")));
                                        break;
                                
                                    case 500:
                                        $result = json_encode(array("error" => array("code" => 500, "message" => "ERRO INTERNO. CONSULTE O LOG DO SERVIDOR")));
                                        break;
                                    
                                    default:
                                        $result = json_encode(array("error" => array("code" => -1, "message" => "ERRO DESCONHECIDO. CONSULTE O LOG DO SERVIDOR")));
                                        break;
                                }
                                
                                return $result;
                            }

                            $result = callJSONRPC($serverUrl, $data, $methodType);

                            echo $result;
                        ?>