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

Revision 7823, 12.3 KB checked in by alexandrecorreia, 11 years ago (diff)

Ticket #2507 - Ajustando a index e o exemplo do novo resclient.

  • Property svn:executable set to *
Line 
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>
36                                <li><a href="#exemplos_uso">Exemplo de uso</a></li>
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
126                                <p>
127                                        Um exemplo de c&oacute;digo de uma chamada AJAX, utilizando a Jquery. Para enviar par&acirc;metros consulte a aba Recursos,onde &eacute; demonstrado o envio destes par&acirc;metros e quais dever&atilde;o ser enviados a cada resource.
128                                </p>
129
130                                <p>
131                                        <h3>Utilizando o Ajax da Jquery</h3>
132
133                                        <pre class='prettyprint'>
134                        $.ajax(
135                        {
136                            type        : "POST",
137                            url         : "client_rest.php",
138                            data        :
139                            {
140                                id          : &lt; ID &gt;
141                                params      : &lt; ENVIE AQUI SEUS PARAMETROS EM FORMATO JSON Exemplo : {"param1":"valor"} &gt;
142                                serverUrl   : "http://expresso.pr.gov.br/api/rest/&lt; RESOURCE REST &gt;",
143                                methodType  : "POST"
144                            }
145                        });
146                    </pre>
147
148                                </p>
149
150                                <p>
151                                        O resource ExpressoVersion n&atilde;o necessita de par&acirc;metros e responde a vers&atilde;o do Expresso e a vers&atilde;o da API REST.
152                                        No trecho abaixo &eacute; demonstrado um c&oacute;digo que utiliza este resource.
153                                </p>
154
155                                <p>     
156                                        Veja este exemplo funcionando ( <a href="./exemplo/exemplo.zip">BAIXAR ESTE EXEMPLO</a>).
157                                </p>
158
159                                <p>
160                                        <h3>Enviando as informa&ccedil;&otilde;es com Javascript</h3>
161
162                                        <pre class='prettyprint'>
163                        $.ajax(
164                        {
165                            type        : "POST",
166                            url         : "client_rest.php",
167                            data        :
168                            {
169                                id          : "";
170                                params      : "";
171                                serverUrl   : "http://expresso.pr.gov.br/api/rest/ExpressoVersion",
172                                methodType  : "POST"
173                            },
174                            beforeSend: function()
175                            {
176                                // Coloque aqui seu c&oacute;digo;
177                            },
178                            success: function(response)                         
179                            {
180                                //Coloque aqui seu c&oacute;digo;
181                            },
182                            error: function(response)
183                            {
184                                //Coloque aqui seu c&oacute;digo;
185                            }
186                        });
187                    </pre>
188
189                                </p>
190
191                                <p>
192                                        <h3>Recebendo as informa&ccedil;&otilde;es no PHP</h3>
193
194                                        <pre class='prettyprint'>
195                        &lt;?php
196
197                            $serverUrl  = $_REQUEST['serverUrl'];
198                            $methodType = $_REQUEST['methodType'];
199                            $params     = $_REQUEST['params'];
200                            $id         = ( $_REQUEST['id'] ) ? $_REQUEST['id'] : time();
201                           
202                            $data = "id=".$id."&amp;params=" . stripslashes($params);
203
204                            function callJSONRPC($url, $data, $method)
205                            {
206                                $ch = curl_init();
207                                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
208                               
209                                if($method == "POST"){
210                                    curl_setopt($ch, CURLOPT_POST, 1);
211                                    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
212                                }
213                               
214                                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
215                                curl_setopt($ch, CURLOPT_URL, $url);
216                                curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded"));
217                               
218                                $result     = curl_exec($ch);
219                                $errorCode  = curl_getinfo($ch,CURLINFO_HTTP_CODE);
220                                $lastURL    = curl_getinfo($ch,CURLINFO_EFFECTIVE_URL);
221                               
222                                curl_close($ch);
223                               
224                                switch($errorCode)
225                                {
226                                    case 200:
227                                        break;
228
229                                    case 404:
230                                        $result = json_encode(array("error" => array("code" => 404, "message" => "RECURSO NAO ENCONTRADO => $lastURL")));
231                                        break;
232                               
233                                    case 500:
234                                        $result = json_encode(array("error" => array("code" => 500, "message" => "ERRO INTERNO. CONSULTE O LOG DO SERVIDOR")));
235                                        break;
236                                   
237                                    default:
238                                        $result = json_encode(array("error" => array("code" => -1, "message" => "ERRO DESCONHECIDO. CONSULTE O LOG DO SERVIDOR")));
239                                        break;
240                                }
241                               
242                                return $result;
243                            }
244
245                            $result = callJSONRPC($serverUrl, $data, $methodType);
246
247                            echo $result;
248                        ?&gt;
249
250                    </pre>
251
252                                </p>
253
254                        </div>
255                       
256                        <div id="links_rel"> 
257                               
258                                <p> Refer&ecirc;ncias sobre o protocolo de Comunica&ccedil;&atilde;o JSON-RPC</p>
259
260                                <p> Vers&atilde;o utilizada no desenvolvimento desta API do Expresso &eacute; a 2.0 </p>
261
262                                <ul>
263                                        <li><a href='http://www.jsonrpc.org/specification'>JSON-RPC 2.0 Specification</a></li>
264                                        <li><a href='http://json-rpc.org/wiki/specification'>JSON-RPC 1.0 Specification</a></li>
265                                        <li><a href='http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php'>Specification for Fault Code Interoperability</a></li>
266                                        <li><a href='http://en.wikipedia.org/wiki/JSON-RPC#Implementations'>JSON-RPC Implementations</a></li>
267                                </ul>
268
269                                <p>Bibliotecas JavaScript Utilizadas</p>
270
271                                <ul>
272                                        <li><a href='http://www.jquery.com'>JQuery-CORE</a></li>
273                                        <li><a href='http://www.jqueryui.com'>JQuery-UI</a></li>
274                                        <li><a href='http://embeddedjs.com'>EJS</a></li>
275                                </ul>
276
277                                <p>Linguagem de programa&ccedil;&atilde;o Server Side</p>
278                                <ul>
279                                        <li><a href='http://www.php.net'>PHP</a></li>
280                                </ul>
281
282                                <p>Servidor WEB</p>
283                                <ul>
284                                        <li><a href='http://www.apache.org'>Apache</a></li>
285                                </ul>
286
287                        </div>
288
289                </div>
290
291                <div id="footer"></div>
292
293        </body>
294</html>
Note: See TracBrowser for help on using the repository browser.