{"id":100,"date":"2008-04-18T10:15:34","date_gmt":"2008-04-18T17:15:34","guid":{"rendered":"http:\/\/www.milfont.org\/tech\/2008\/04\/18\/html-nao-serve-para-rest\/"},"modified":"2008-04-18T10:15:34","modified_gmt":"2008-04-18T17:15:34","slug":"html-nao-serve-para-rest","status":"publish","type":"post","link":"https:\/\/www.milfont.org\/tech\/2008\/04\/18\/html-nao-serve-para-rest\/","title":{"rendered":"HTML n\u00e3o serve para REST"},"content":{"rendered":"<p><script type=\"text\/javascript\"> function get_style100 () { return \"none\"; } function end100_ () { document.getElementById('wqd100').style.display = get_style100(); } <\/script>O maior problema de disponibilizar uma aplica\u00e7\u00e3o como API via REST \u00e9 a constru\u00e7\u00e3o de aplica\u00e7\u00f5es Mashups com formul\u00e1rios HTML sem usar um &#8220;proxy&#8221; server-side.<\/p>\n<p>Digamos que eu queira construir uma aplica\u00e7\u00e3o apenas cliente acessando uma API implementada em REST segundo os &#8220;bons constumes&#8221;. Segundo a especifica\u00e7\u00e3o do HTML, o <a href=\"http:\/\/www.w3.org\/TR\/html401\/interact\/forms.html#h-17.13.1\">form<\/a> s\u00f3 possuem dois tipos de m\u00e9todo HTTP, o POST e o GET. Isso inviabiliza a submiss\u00e3o de opera\u00e7\u00f5es de altera\u00e7\u00f5es de um recurso pelo m\u00e9todo PUT e de exclus\u00e3o pelo m\u00e9todo DELETE. O Fernando Chucre dos <a href=\"http:\/\/www.horizontesdigitais.com\">Horizontes Digitais<\/a> me alertou para consultar a especifica\u00e7\u00e3o do HTML depois que levei uma surra ao tentar implementar isso com form, eu pensei que era problema no apache e estava tentando &#8220;habilitar&#8221; os outros m\u00e9todos por n\u00e3o saber que o Form HTML n\u00e3o permite.<\/p>\n<p>Funciona usando AJAX caso a aplica\u00e7\u00e3o v\u00e1 funcionar no mesmo host da API, mas se minha aplica\u00e7\u00e3o est\u00e1 hospedada em <a href=\"http:\/\/www.milfont.org\/tech\/2008\/03\/09\/ajax-crossbrowser-no-ie8-e-ff3\/\">outro local<\/a> j\u00e1 n\u00e3o funciona. Outra estrat\u00e9gia que n\u00e3o funciona \u00e9 <a href=\"http:\/\/www.milfont.org\/tech\/2007\/10\/08\/script-tag\/\">Scripttag<\/a> porque esse s\u00f3 usa GET para adicionar um script no Head da p\u00e1gina.<\/p>\n<p>Por enquanto n\u00e3o imaginei uma forma crossbrowser de acessar um recurso remoto pelos m\u00e9todos PUT e DELETE que n\u00e3o seja usando um Proxy no mesmo host que est\u00e1 hospedado a aplica\u00e7\u00e3o consumidora do recurso. Na spec OpenSocial voc\u00ea tem o m\u00e9todo makeRequest dessa forma.<\/p>\n<p>Caso algu\u00e9m tenha uma id\u00e9ia para contornar esse problema pode comentar aqui.<\/p>\n<p id=\"wqd100\">Typically chemist&#8217;s shop can sale to you with discreet treatments for various heartiness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">viagra manufacturer coupon<\/a>&#8220;. Maybe &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">viagra discount coupons<\/a>&#8221; is a very much complicated matter. Matters, like &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">coupons for viagra<\/a>&#8220;, are connected numerous types of heartiness problems. If you need to take formula medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may include erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a recipe is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies. <\/p>\n<p><script type=\"text\/javascript\"> end100_(); <\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O maior problema de disponibilizar uma aplica\u00e7\u00e3o como API via REST \u00e9 a constru\u00e7\u00e3o de aplica\u00e7\u00f5es Mashups com formul\u00e1rios HTML sem usar um &#8220;proxy&#8221; server-side. Digamos que eu queira construir uma aplica\u00e7\u00e3o apenas cliente acessando uma API implementada em REST segundo os &#8220;bons constumes&#8221;. Segundo a especifica\u00e7\u00e3o do HTML, o form s\u00f3 possuem dois tipos [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[163,164,42],"tags":[368,166,165,402,403],"_links":{"self":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/100"}],"collection":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/comments?post=100"}],"version-history":[{"count":0,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/100\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/media?parent=100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/categories?post=100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/tags?post=100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}