source: sandbox/webservice/restclient_new/index.html @ 7818

Revision 7818, 11.2 KB checked in by alexandrecorreia, 11 years ago (diff)

Ticket #2507 - Ajustando o help e criado um exemplo para utilizar o REST.

  • Property svn:executable set to *
RevLine 
[7808]1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2<html>
3        <head>
4                <title>.:: ExpressoLivre - API REST ::.</title>
5                <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
6                <meta name="author" content="Equipe Expresso Livre" />
7                <meta name="keywords" content="rest, json, javascript" />
8                <meta name="description" content="Cliente para demonstra&ccedil;&atilde;o do RECURSO REST" />
9                <!--CSS-->
10                <link rel="stylesheet" href="./css/styles.css"/>
11                <link rel="stylesheet" href="./css/smoothness/jquery-ui-1.9.2.custom.css"/>
12                <link rel="stylesheet" href="./plugins/prettify/prettify.css"/>
13
14                <!--JavaScript-->
15                <script type="text/javascript" src="./plugins/jquery/jquery-1.9.0.min.js"></script>
16                <script type="text/javascript" src="./plugins/jquery/jquery-ui-1.9.2.custom.min.js"></script>
17                <script type="text/javascript" src="./plugins/ejs/ejs.js"></script>
18                <script type="text/javascript" src="./plugins/ejs/ejs_production.js"></script>
19                <script type="text/javascript" src="./plugins/ejs/view.js"></script>
20                <script type="text/javascript" src="./plugins/prettify/prettify.js"></script>
21                <script type="text/javascript" src="./js/functions.js"></script>
22                <script type="text/javascript" src="./js/resources.js"></script>
23                <script type="text/javascript" src="./js/execute.js"></script>
24
25        </head>
26        <body>
27               
28                <div id="page_header"></div>
29               
30                <h2>Documenta&ccedil;&atilde;o da API REST do Expresso</h2>
31
32                <div id="tabs_content">
33                        <ul>
34                                <li><a href="#content">Sobre a API</a></li>
35                                <li><a href="#resources">Recursos</a></li>
[7818]36                                <li><a href="#exemplos_uso">Exemplo de uso</a></li>
[7808]37                                <li><a href="#links_rel">Links Relacionados</a></li>
38                        </ul>
39                        <div id="content">
40                                <div id="content_1">
41                                        <h3>RECURSOS DISPON&Iacute;VEIS NA API</h3>
42                                        <div>
43                                                <p>
44                                                        Atrav&eacute;s da lista de recursos abaixo, voc&ecirc; poder&aacute; realizar testes no ambiente de demonstra&ccedil;&atilde;o
45                                                        da API REST disponibilizada pelo Expresso.
46                                                </p>
47
48                                                <p>
49                                                        Atualmente os seguintes recursos est&atilde;o disponibilizados:
50                                                </p>
51
52                                                <ul>
53                                                        <li>Login - Realiza a autentica&ccedil;&atilde;o do usu&aacute;rio, gerando uma chave de autentica&ccedil;&atilde;o;</li>
54                                                        <li>Logout - Desloga o usu&aacute;rio, invalidando a chave de autentica&ccedil;&atilde;o;</li>
55                                                        <li>ExpressionVersion - para verificar a vers&atilde;o atual do Expresso;</li>
56                                                        <li>Mail/Folders - Lista a Pasta do Usu&aacute;rio;</li>
57                                                        <li>Mail/AddFolder - Adiciona uma nova pasta;</li>
58                                                        <li>Mail/Messages - Retornas as mensagens do usu&aacute;rio;</li>
59                                                        <li>Mail/Attachment - Retorna o anexo da mensagem para o download;</li>
60                                                        <li>Mail/Send - Envia uma mensagem de email;</li>
61                                                        <li>Mail/RenameFolder - Renomeia uma pasta;</li>
62                                                        <li>Mail/DelFolder - Exclui uma pasta;</li>
63                                                        <li>Mail/CleanTrash - Limpa a lixeira;</li>
64                                                        <li>Mail/SendSupportFeedback - Envia uma mensagem de sugest&atilde;o para o administrador do Expresso;</li>
65                                                        <li>Catalog/Contacts - Retorna os contatos do cat&aacute;logo pessoal e geral;</li>
66                                                        <li>Catalog/ContactPicture - Retorna a foto de um contato em BASE64;</li>
67                                                        <li>Calendar/Events - Retorna os eventos do calend&aacute;rio;</li>
68                                                        <li>Admin/CreateUser - Cria&ccedil;&atilde;o de usu&aacute;rios (necess&aacute;rio ter permiss&atilde;o de acesso no m&oacute;dulo expressoAdmin).</li>
69                                                        <li>Admin/SearchUser - Procura de usu&aacute;rios (necess&aacute;rio ter permiss&atilde;o de acesso no m&oacute;dulo expressoAdmin).</li>
70                                                        <li>Admin/DeleteUser - Exclus&atilde;o de usu&aacute;rios (necess&aacute;rio ter permiss&atilde;o de acesso no m&oacute;dulo expressoAdmin).</li>
71                                                        <li>Admin/EditUser - Edi&ccedil;&atilde;o de usu&aacute;rios (necess&aacute;rio ter permiss&atilde;o de acesso no m&oacute;dulo expressoAdmin).</li>
72                                                        <li>Admin/RenameUser - Renomea&ccedil;&atilde;o de usu&aacute;rios (necess&aacute;rio ter permiss&atilde;o de acesso no m&oacute;dulo expressoAdmin).</li>
73                                                        <li>Admin/UpdateUser - Atualiza&ccedil;&atilde;o de usu&aacute;rios (necess&aacute;rio ter permiss&atilde;o de acesso no m&oacute;dulo expressoAdmin).</li>
74                                                </ul>
75                                        </div>
76                                </div>
77
78                                <div id="content_2">
79                                        <h3>COMO FUNCIONA A API REST</h3>
80                                        <div>
81                                                <p>
82                                                        Para ter acesso a um dos recursos listados acima, &eacute; necess&aacute;rio que sua aplica&ccedil;&atilde;o realize uma
83                                                        requisi&ccedil;&atilde;o HTTP pelos m&eacute;todos( GET, POST ), para a URL que &eacute; formado pelo
84                                                        endere&ccedil;o do servidor Expresso mais o nome do recurso que deseja utilizar.
85                                                </p>
86
87                                                <p>
88                                                        Cada recurso possui um conjunto de par&acirc;metros que s&atilde;o necess&aacute;rios para atender as requisi&ccedil;&otilde;es enviadas
89                                                        ao servidor do Expresso.
90                                                </p>
91
92                                                <p>
93                                                        Com exce&ccedil;&atilde;o do recurso <i><b>ExpressionVersion</b></i>, todos os outros recursos necessitam de uma
94                                                        autentica&ccedil;&atilde;o ( usu&aacute;rio e senha, que retornar&aacute; uma chave de acesso ).
95                                                </p>
96
97                                        </div>
98                                </div>
99                        </div>
100
101                        <div id="resources">
102                                <p>
103                                        Informe a URL de contexto da sua API:
104                                </p>
105
106                                <p>
107                                        <input id="serverAPI" type="text" size="70" value="" name="serverAPI">
108                                </p>
109
110
111                                <p>Chave de Autentica&ccedil;&atilde;o</p>
112
113                                <p>
114                                        <div id="key_auth_server_expresso">
115                                                <span style="font-weight:bold;color:red">USU&Aacute;RIO N&Atilde;O AUTENTICADO</span>
116                                                <input type="hidden">
117                                        </div>
118                                </p>
119
120                                <div id="resources_expresso"></div>
121
122                        </div>
123
124                        <div id="exemplos_uso">
125
[7816]126                                <p>
127                                        Um exemplo de c&oacute;digo de uma chamada AJAX, utilizando a Jquery. Este trecho de c&oacute;digo abaixo representa
128                                        uma chamada para o Resource ExpressoVersion.
129                                </p>
[7808]130
[7816]131                                <p>     
[7818]132                                        Este m&eacute;todo retorna a vers&atilde;o do Expresso. Veja este exemplo funcionando em sua m&aacute;quina baixando este projeto <a href="./exemplo/exemplo.zip">EXEMPLO.ZIP</a>.
[7816]133                                </p>
134
135                                <p>
136                                        <h3>Enviando as informa&ccedil;&otilde;es com Javascript</h3>
137
138                                        <pre class='prettyprint'>
139                        $.ajax(
140                        {
141                            type        : "POST",
142                            url         : "client_rest.php",
143                            data        :
144                            {
145                                serverUrl       : "http://expresso.pr.gov.br/api/rest/ExpressoVersion",
146                                methodType      : "POST"
147                            },
148                            beforeSend: function()
149                            {
150                                // Coloque aqui seu c&oacute;digo;
151                            },
152                            success: function(response)                         
153                            {
154                                //Coloque aqui seu c&oacute;digo;
155                            },
156                            error: function(response)
157                            {
158                                //Coloque aqui seu c&oacute;digo;
159                            }
[7818]160                        });
[7816]161                    </pre>
162
163                                </p>
164
165                                <p>
166                                        <h3>Recebendo as informa&ccedil;&otilde;es no PHP</h3>
167
168                                        <pre class='prettyprint'>
169                        &lt;?php
170
171                            $serverUrl  = $_REQUEST['serverUrl'];
172                            $methodType = $_REQUEST['methodType'];
173                            $params     = $_REQUEST['params'];
174                            $id         = ( $_REQUEST['id'] ) ? $_REQUEST['id'] : time();
175                           
176                            $data = "id=".$id."&amp;params=" . stripslashes($params);
177
178                            function callJSONRPC($url, $data, $method)
179                            {
180                                $ch = curl_init();
181                                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
182                               
183                                if($method == "POST"){
184                                    curl_setopt($ch, CURLOPT_POST, 1);
185                                    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
186                                }
187                               
188                                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
189                                curl_setopt($ch, CURLOPT_URL, $url);
190                                curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded"));
191                               
192                                $result     = curl_exec($ch);
193                                $errorCode  = curl_getinfo($ch,CURLINFO_HTTP_CODE);
194                                $lastURL    = curl_getinfo($ch,CURLINFO_EFFECTIVE_URL);
195                               
196                                curl_close($ch);
197                               
198                                switch($errorCode)
199                                {
200                                    case 200:
201                                        break;
202
203                                    case 404:
204                                        $result = json_encode(array("error" => array("code" => 404, "message" => "RECURSO NAO ENCONTRADO => $lastURL")));
205                                        break;
206                               
207                                    case 500:
208                                        $result = json_encode(array("error" => array("code" => 500, "message" => "ERRO INTERNO. CONSULTE O LOG DO SERVIDOR")));
209                                        break;
210                                   
211                                    default:
212                                        $result = json_encode(array("error" => array("code" => -1, "message" => "ERRO DESCONHECIDO. CONSULTE O LOG DO SERVIDOR")));
213                                        break;
214                                }
215                               
216                                return $result;
217                            }
218
219                            $result = callJSONRPC($serverUrl, $data, $methodType);
220
221                            echo $result;
222                        ?&gt;
223
224                    </pre>
225
226                                </p>
227
[7808]228                        </div>
229                       
230                        <div id="links_rel"> 
231                               
232                                <p> Refer&ecirc;ncias sobre o protocolo de Comunica&ccedil;&atilde;o JSON-RPC</p>
233
234                                <p> Vers&atilde;o utilizada no desenvolvimento desta API do Expresso &eacute; a 2.0 </p>
235
236                                <ul>
237                                        <li><a href='http://www.jsonrpc.org/specification'>JSON-RPC 2.0 Specification</a></li>
238                                        <li><a href='http://json-rpc.org/wiki/specification'>JSON-RPC 1.0 Specification</a></li>
239                                        <li><a href='http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php'>Specification for Fault Code Interoperability</a></li>
240                                        <li><a href='http://en.wikipedia.org/wiki/JSON-RPC#Implementations'>JSON-RPC Implementations</a></li>
241                                </ul>
[7816]242
243                                <p>Bibliotecas JavaScript Utilizadas</p>
244
245                                <ul>
246                                        <li><a href='http://www.jquery.com'>JQuery-CORE</a></li>
247                                        <li><a href='http://www.jqueryui.com'>JQuery-UI</a></li>
[7817]248                                        <li><a href='http://embeddedjs.com'>EJS</a></li>
[7816]249                                </ul>
250
251                                <p>Linguagem de programa&ccedil;&atilde;o Server Side</p>
252                                <ul>
253                                        <li><a href='http://www.php.net'>PHP</a></li>
254                                </ul>
255
256                                <p>Servidor WEB</p>
257                                <ul>
258                                        <li><a href='http://www.apache.org'>Apache</a></li>
259                                </ul>
260
[7808]261                        </div>
262
263                </div>
264        </body>
265</html>
Note: See TracBrowser for help on using the repository browser.