{"id":600,"date":"2019-11-26T11:02:30","date_gmt":"2019-11-26T14:02:30","guid":{"rendered":"https:\/\/micheladrianomedeiros.com.br\/blog\/?p=600"},"modified":"2020-04-07T08:45:40","modified_gmt":"2020-04-07T11:45:40","slug":"web-services-restful-4","status":"publish","type":"post","link":"https:\/\/micheladrianomedeiros.com.br\/blog\/web-services-restful-4\/","title":{"rendered":"Web Services RESTful #4"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Passagem de Par\u00e2metros pela\nURL<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para passar par\u00e2metros pela URL,\ndevemos colocar no fim do endere\u00e7o a \u201c?\u201d, e depois o nome do par\u00e2metro, mais o\nsinal de igual (=), e a seguir o valor. Exemplo: <a href=\"http:\/\/localhost:8080\/Carros\/hello?nome=Michel&amp;sobrenome=Medeiros\">http:\/\/localhost:8080\/Carros\/hello?nome=Michel&amp;sobrenome=Medeiros<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Veja que para passar mais de um par\u00e2metro o sinal de (&amp;) faz a liga\u00e7\u00e3o. Agora vamos ver como passar par\u00e2metros e ler os valores no servlet.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"566\" height=\"131\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/image-25.png\" alt=\"\" class=\"wp-image-601\" srcset=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/image-25.png 566w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/image-25-300x69.png 300w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/image-25-560x131.png 560w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Note que se voc\u00ea n\u00e3o passar\nnenhum par\u00e2metro o valor apresentado ser\u00e1 null.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passagem de Par\u00e2metros por\nFormul\u00e1rio<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos agora passar valores por meio de um formul\u00e1rio. Por padr\u00e3o tem uma p\u00e1gina index.html. Apague este arquivo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;%@page contentType=\"text\/html\" pageEncoding=\"UTF-8\"%>\n&lt;!DOCTYPE html>\n&lt;html>\n    &lt;head>\n        &lt;meta http-equiv=\"Content-Type\" content=\"text\/html; charset=UTF-8\">\n        &lt;title>JSP Page&lt;\/title>\n    &lt;\/head>\n    &lt;body>\n        &lt;form method=\"post\" action=\"&lt;%=request.getContextPath()%>\/hello\">\n            Nome: &lt;input type=\"text\" name=\"nome\" \/>\n            &lt;br>&lt;br>\n            Sobrenome: &lt;input type=\"text\" name=\"sobrenome\" \/>\n            &lt;br>\n            &lt;input type=\"submit\" name=\"Enviar\" \/>\n        &lt;\/form>\n    &lt;\/body>\n&lt;\/html><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O formul\u00e1rio fica desta maneira.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"301\" height=\"130\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/image-26.png\" alt=\"\" class=\"wp-image-602\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Estamos utilizando o m\u00e9todo\npost, se n\u00e3o colocar o \u201cmethod\u201d por padr\u00e3o ser\u00e1 o m\u00e9todo get.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A diferen\u00e7a de utilizar o\nm\u00e9todo get e post \u00e9 a seguinte: o get passa os par\u00e2metros pela URL e o post\npassa no corpo da requisi\u00e7\u00e3o. O get deixa vis\u00edvel na URL os dados e o post n\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se voc\u00ea enviar o formul\u00e1rio\nn\u00e3o acontecer\u00e1 nada, porque n\u00e3o temos nada no m\u00e9todo doPost no servlet HelloServlet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adicione a chamada doGet no m\u00e9todo doPost e reinicie o servidor. Agora sim, ir\u00e1 funcionar.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@Override\n    protected void doPost(HttpServletRequest request, HttpServletResponse response)\n            throws ServletException, IOException {\n        doGet(request, response);\n    }<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>M\u00e9todos do Protocolo HTTP\n(GET, POST, PUT, DELETE)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No exemplo anterior trabalhamos com dois m\u00e9todos o get e post. Mas o protocolo HTTP tem outros recursos. Basicamente utilizaremos quatro: get, post, put e delete.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"250\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/image-27.png\" alt=\"\" class=\"wp-image-603\" srcset=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/image-27.png 567w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/image-27-300x132.png 300w\" sizes=\"auto, (max-width: 567px) 100vw, 567px\" \/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos criar os m\u00e9todos doPut e\no doDelete. O doPost e o doGet j\u00e1 fizemos e testamos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adicione no servlet HelloServlet, o seguinte c\u00f3digo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    @Override\n    protected void doPut(HttpServletRequest req, HttpServletResponse resp)\n            throws ServletException, IOException {\n        resp.getWriter().print(\"Ol\u00e1 PUT\");\n    }\n\n    @Override\n    protected void doDelete(HttpServletRequest req, HttpServletResponse resp)\n            throws ServletException, IOException {\n        resp.getWriter().print(\"Ol\u00e1 DELETE\");\n    }<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para testar os m\u00e9todos PUT e\nDELETE vamos instalar o Insomnia. Segue o link para voc\u00ea fazer o download\n<a href=\"https:\/\/insomnia.rest\/\">https:\/\/insomnia.rest\/<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos testar o DELETE, s\u00f3 adicionar a URL e escolher o DELETE e clicar no bot\u00e3o Send. Veja que a resposta \u00e9 a que colocamos no m\u00e9todo doDelete: Ol\u00e1 DELETE.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"566\" height=\"77\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/image-28.png\" alt=\"\" class=\"wp-image-604\" srcset=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/image-28.png 566w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/image-28-300x41.png 300w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/image-28-560x77.png 560w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Para testar o PUT, basta mudar\npara PUT e clicar em Send.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Criamos um servlet, vimos como enviar dados para o servlet e conhecemos os quatro protocolos do HTTP mais utilizados na cria\u00e7\u00e3o de um web service.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/web-services-restful\/\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" width=\"339\" height=\"467\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/wb1.png\" rel=\"gallery\" class=\"fancybox\"  alt=\"\" class=\"wp-image-609\" srcset=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/wb1.png 339w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/11\/wb1-218x300.png 218w\" sizes=\"auto, (max-width: 339px) 100vw, 339px\" \/><\/a><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"> Fonte:&nbsp;<strong>Web Services Restful: Aprenda a Criar web Services RESTful em Java na Nuvem do Google&nbsp;<\/strong> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Passagem de Par\u00e2metros pela URL Para passar par\u00e2metros pela URL, devemos colocar no fim do endere\u00e7o a \u201c?\u201d, e depois o nome do par\u00e2metro, mais o sinal de igual (=), e a seguir o valor. Exemplo: http:\/\/localhost:8080\/Carros\/hello?nome=Michel&amp;sobrenome=Medeiros. Veja que para passar mais de um par\u00e2metro o sinal de (&amp;) faz a liga\u00e7\u00e3o. Agora vamos ver [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":244,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,50],"tags":[],"class_list":["post-600","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","category-webservice"],"_links":{"self":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/comments?post=600"}],"version-history":[{"count":2,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/600\/revisions"}],"predecessor-version":[{"id":803,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/600\/revisions\/803"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media\/244"}],"wp:attachment":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media?parent=600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/categories?post=600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/tags?post=600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}