{"id":655,"date":"2015-10-21T15:04:44","date_gmt":"2015-10-21T18:04:44","guid":{"rendered":"https:\/\/www.erudio.com.br\/blog\/?p=655"},"modified":"2022-12-21T09:43:49","modified_gmt":"2022-12-21T12:43:49","slug":"web-services","status":"publish","type":"post","link":"https:\/\/www.erudio.com.br\/blog\/web-services\/","title":{"rendered":"Web Services"},"content":{"rendered":"<p>Nos \u00faltimos meses me pediram a defini\u00e7\u00e3o de Web-services em 3 processos seletivos diferentes, por mais simples que possa parecer definir conceitualmente pode ser mais complexo do que parece, sendo assim decidi fazer uma s\u00e9rie de posts a respeito. Neles iremos aprender sobre os diferentes tipos de <strong>Web Services<\/strong> &#8211; ou simplesmente servi\u00e7os. Pra come\u00e7o de conversa um Servi\u00e7o nada mais \u00e9 que uma aplica\u00e7\u00e3o interoper\u00e1vel hospedada e acessada atrav\u00e9s da web atrav\u00e9s do protocolo <strong>HTTP<\/strong> por meio de um browser ou de diferentes tipos de clientes, como outras aplica\u00e7\u00f5es ou servi\u00e7os. Deixando um pouco mais claro quando voc\u00ea cria um website em PHP a sa\u00edda padr\u00e3o \u00e9 HTML e seu alvo \u00e9 o browser e por extens\u00e3o n\u00f3s podemos visualizar a p\u00e1gina no browser. Um web service n\u00e3o \u00e9 direcionado para humanos e sim para outros programas.<br \/>\nO <strong>World Wide Web Consortium (W3C)<\/strong> define os web services como: aplica\u00e7\u00f5es cliente servidor que se comunicam pela <strong>World Wide Web\u2019s (WWW)<\/strong> atrav\u00e9s do protocolo <strong>HTTP (HyperText Transfer Protocol)<\/strong> possibilitando a interoperabilidade entre softwares e aplica\u00e7\u00f5es executando em uma grande variedade de plataformas e frameworks. Caracterizam-se por sua grande interoperabilidade e extensibilidade podendo ser combinados de forma baixamente acoplada para executarem opera\u00e7\u00f5es complexas. Programas proveem simples servi\u00e7os que podem interagir uns com os outros gerando solu\u00e7\u00f5es sofisticadas.<\/p>\n<p>Os servi\u00e7os podem ser divididos em 2 grupos mais comumente conhecidos e usados, s\u00e3o eles:<br \/>\neles:<br \/>\n\u25cf <strong>REST (Representational State Transfer)<\/strong><br \/>\n\u25cf <strong>SOAP (Simple Object Access Protocol)<\/strong><br \/>\n<strong>REST<\/strong><br \/>\n\u25cf <strong>JAX-RS 2.0<\/strong> especifica\u00e7\u00e3o que suporta a implementa\u00e7\u00e3o para os servi\u00e7os baseados <strong>RESTful<\/strong> no mundo <strong>Java<\/strong>.<br \/>\n\u25cf As principais implementa\u00e7\u00f5es dispon\u00edveis para essa essa especifica\u00e7\u00e3o s\u00e3o: Apache CXF, Spring MVC, JBoss RestEasy, Oracle Jersey (2.x) e Glassfish Jersey (2.x).<br \/>\n<strong>SOAP<\/strong><br \/>\n\u25cf <strong>JAX-WS 2.0<\/strong> especifica\u00e7\u00e3o que suporta a implementa\u00e7\u00e3o para os servi\u00e7os baseados em <strong>SOAP<\/strong> no mundo Java.<br \/>\n\u25cf As principais implementa\u00e7\u00f5es dispon\u00edveis para essa essa especifica\u00e7\u00e3o s\u00e3o: Apache CXF, JAX-WS, Apache Axis2 e Oracle WebLogic.<br \/>\nO diagrama abaixo representa bem essa &#8220;divis\u00e3o&#8221; entre os 2 principais tipos de servi\u00e7os.<br \/>\n<a href=\"https:\/\/www.erudio.com.br\/blog\/wp-content\/uploads\/2015\/12\/image1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-656\" src=\"https:\/\/www.erudio.com.br\/blog\/wp-content\/uploads\/2015\/12\/image1.png\" alt=\"image1\" width=\"750\" height=\"425\" \/><\/a><br \/>\nNos pr\u00f3ximos posts entraremos em maiores detalhes sobre a sopa de letrinhas REST, SOAP, SOA, API etc. Al\u00e9m disso iremos botar a m\u00e3o na massa e codar um pouco.<\/p>\n<h2>Treinamentos relacionados com este post<\/h2>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_spring_java\" target=\"_blank\" rel=\"noopener\"><br \/>\n<img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0  AWS com Spring Boot 3, Java e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/07-rest-spring-java.png\" \/><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_asp_net\" target=\"_blank\" rel=\"noopener\"><br \/>\n<img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0 Azure com ASP.NET Core 5 e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/01-rest-asp.png\" \/><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_spring_kotlin\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0 AWS com Spring Boot 3, Kotlin e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/18-rest-spring-kotlin.png\" \/><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_microservices_java\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Microservices do 0 com Spring Cloud, Spring Boot e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/14-microservices-java.png\" \/><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_microservices-dotnet\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Arquitetura de Microsservi\u00e7os do 0 com ASP.NET, .NET 6 e C#\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/15-microservices-dotnet.png\" \/><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_ms_kotlin\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Microsservi\u00e7os do 0 com Spring Cloud, Kotlin e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/22-ms-kotlin.png\" \/><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_docker\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Docker do 0 \u00e0 Maestria: Cont\u00eaineres Desmistificados mais 3 B\u00d4NUS\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/09-docker.png\" \/><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_docker_para_aws\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Docker para Amazon AWS Implante Apps Java e .NET com Travis CI\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/10-docker-to-aws.png\" \/><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_kotlin\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Kotlin para DEVs Java: Aprenda a Linguagem Padr\u00e3o do Android\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/20-kotlin.png\" \/><br \/>\n<\/a><\/p>\n<h2>Refer\u00eancias:<\/h2>\n<p><a title=\"https:\/\/docs.oracle.com\/javaee\/6\/tutorial\/doc\/gijvh.html\" href=\"https:\/\/docs.oracle.com\/javaee\/6\/tutorial\/doc\/gijvh.html\">https:\/\/docs.oracle.com\/javaee\/6\/tutorial\/doc\/gijvh.html<\/a><\/p>\n<p><a title=\"http:\/\/www.w3schools.com\/webservices\/ws_intro.asp\" href=\"http:\/\/www.w3schools.com\/webservices\/ws_intro.asp\" class=\"broken_link\">http:\/\/www.w3schools.com\/webservices\/ws_intro.asp<\/a><\/p>\n<p><a title=\"http:\/\/www.tutorialspoint.com\/webservices\/what_are_web_services.htm\" href=\"http:\/\/www.tutorialspoint.com\/webservices\/what_are_web_services.htm\" class=\"broken_link\">http:\/\/www.tutorialspoint.com\/webservices\/what_are_web_services.htm<\/a><\/p>\n<p><a title=\"http:\/\/stackoverflow.com\/questions\/226108\/what-is-a-web-service-in-plain-english\" href=\"http:\/\/stackoverflow.com\/questions\/226108\/what-is-a-web-service-in-plain-english\">http:\/\/stackoverflow.com\/questions\/226108\/what-is-a-web-service-in-plain-english<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nos \u00faltimos meses me pediram a defini\u00e7\u00e3o de Web-services em 3 processos seletivos diferentes, por mais simples que possa parecer definir conceitualmente pode ser mais complexo do que parece, sendo assim decidi fazer uma s\u00e9rie de posts a respeito. Neles iremos aprender sobre os diferentes tipos de Web Services &#8211; ou simplesmente servi\u00e7os. Pra come\u00e7o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11,96,100,101,120],"tags":[132,221,227,228,247],"_links":{"self":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/655"}],"collection":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/comments?post=655"}],"version-history":[{"count":3,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/655\/revisions"}],"predecessor-version":[{"id":1486,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/655\/revisions\/1486"}],"wp:attachment":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/media?parent=655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/categories?post=655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/tags?post=655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}