Web API x Web Services

.NET

01/09/2014

Olá, gente. Como vão?

Andei vendo uns posts sobre Web API e pelop que já estudei, parece muito com MVC (me pareceu um MVC sem as views). Mas minha principal dúvida, de acordo com o que entendi da proposta da Web API, é se ela é uma tecnologia que visa substituir os web services já existentes.

Por exemplo, eu tenho um web service ASMx que fornece dados no formato byte[] para outra aplicação. Tudo funciona muito bem. Aí eu pergunto: seria interessante migrar para Web API?

Obrigada desde já.
Rachel Andrade

Rachel Andrade

Curtidas 0

Melhor post

Renato Groffe

Renato Groffe

02/09/2014

Olá Rachel, tudo bem?

O Web API é um framework que surgiu mais recentemente, para a implementação de Web Services seguindo a arquitetura REST. A ideia por trás do desenvolvimento nessa tecnologia é construir serviços com uma estrutura mais simples, substituindo o uso de um XML mais complexo no padrão SOAP por algo equivalente em JSON ou ainda XML puro.

Segue um link de um artigo que escrevi aqui no site a respeito de Web API:

https://www.devmedia.com.br/asp-net-web-api-implementando-servicos-restful/31024

Além de uma estrutura mais simplificada, uma das vantagens em se adotar tal prática seria um menor tráfego de informações ao longo de uma rede (quando comparado a uma mensagem gerada em SOAP).

Acredito que se você já tem um Web Service que atende a um determinado tipo de demanda, talvez não seja tão produtivo substituir o mesmo por algo em Web API. A não ser que vc pretenda reestruturar todo o serviço, a fim de melhorar o código ou implementar novas funcionalidades. Se realmente optar por esse caminho, lembre-se de que a aplicação que consome o serviço também precisará ser alterada.

É importante lembrar ainda que serviços REST também podem ser desenvolvidos a partir de WCF. Além disso, a Microsoft recomenda atualmente que Web Services em SOAP sejam criados usando WCF ao invés do padrão ASMX (mais uma vez, se o seu serviço atende ao que se espera, mudar não trará tantos retornos a meu ver).

Espero que tenha ajudado.
GOSTEI 2

Mais Respostas

Rachel Andrade

Rachel Andrade

01/09/2014

Olá, Renato. Tudo ótimo, e com você?

Obrigado e parabéns pelo artigo, muito claro e esclarecedor.

Realmente fico com receio de migrar um projeto sem necessidade. Sem querer abusar, você poderia opinar sobre esse meu cenário atual? É o seguinte:

Tenho uma aplicação Windows Phone que recebe dados de um ASMx no formato byte[]. Quando recebo, transoformo esses bytes em um arquivo e passo a utilizá-lo normalmente. Esse arquivo basicamente é um zip contendo outros arquivos XML.

Você acha que o tráfego de dados poderia ser reduzido se eu criasse uma Web API para retornar esses dados diretamente em formato JSON?

Ou seja, o mesmo arquivo em byte[] ou seu conteúdo em JSON, o que seria melhor em termo de tráfego?

Muito obrigada pela atenção e mais uma vez, parabéns pelo artigo.
GOSTEI 0
Renato Groffe

Renato Groffe

01/09/2014

Olha Rachel, faz tempo que não faço nada envolvendo manipulação de arquivos via Web Service, mas acredito que sim.

Acho que poderia fazer uma aplicação rápida Web API para comparar isto. Tem um utilitário chamado Fiddler que permite monitorar as respostas geradas por Web Services, logando em tela todo o conteúdo que é devolvido após o processamento de uma requisição.

Por coincidência, publicaram outro post meu a respeito dessa ferramenta esses dias aqui no site:

https://www.devmedia.com.br/utilitario-fiddler-monitoramento-de-web-services/31274

Acredito que você possa comparar e ver a diferença com este programa (que imagino ser significativa).

Abs.
GOSTEI 1
Rachel Andrade

Rachel Andrade

01/09/2014

Oi, Renato.
Desculpe a demora. O fórum passou uns dias em manutenção. Vou ler seu artigo e fazer uns testes sim, comparando o que fica mais leve, se em byte[] ou JSON.
Obrigada mais uma vez. Volto em breve para dar um feedback.
GOSTEI 0
Renato Groffe

Renato Groffe

01/09/2014

Sem problemas Rachel.

Eu também não tive tempo de responder antes.

Abs
GOSTEI 0
Alex Sander

Alex Sander

01/09/2014

Oi, Renato.
Desculpe a demora. O fórum passou uns dias em manutenção. Vou ler seu artigo e fazer uns testes sim, comparando o que fica mais leve, se em byte[] ou JSON.
Obrigada mais uma vez. Volto em breve para dar um feedback.

Como foi seu resultado Rachel? Gostaria de saber seu feedback pois tenho o mesmo dilema em mãos.
GOSTEI 0
Helder

Helder

01/09/2014

Olá pessoal, tudo bem?
Não sei se já conhecem, mas existe uma plataforma para criação de webservices muito eficiente, basta apenas liberar acesso para o banco de dados, e você pode criar uma nova tabela, um novo campo com apenas um clique, talvez ajude muito vocês.
Fica a indicação do Datasocket.
datasocket.co/free
GOSTEI 0
Vinicius Barbosa

Vinicius Barbosa

01/09/2014

Oi, Renato.
Desculpe a demora. O fórum passou uns dias em manutenção. Vou ler seu artigo e fazer uns testes sim, comparando o que fica mais leve, se em byte[] ou JSON.
Obrigada mais uma vez. Volto em breve para dar um feedback.


Oi Rachel ...

Bom dia, qual seria o seu feedback ???
GOSTEI 0
Rachel Andrade

Rachel Andrade

01/09/2014

Oi, pessoal. Desculpem a imensa demora.

No meu caso, optei por trafegar todos os dados em formato JSON, seguindo o que é mais comum em serviços RESTful. Inclusive, isso também facilita a leitura dos dados e evita alguns processamentos. Por exemplo, eu antes juntava vários arquivos em um ZIP que dava poucos KB de tamanho. Então optei por retornar um único JSON com vários registros.

Espero ter ajudado e obrigado a todos pelas colaborações.
GOSTEI 0
Natália

Natália

01/09/2014

Bom dia pessoa, estou com uma duvida nesses códigos:

var client = new RestClient("https://apiteste.com.br");


HttpWebRequest requisicao = (HttpWebRequest)WebRequest.Create("link");


O primeiro "RestClient" seria uma chamada Web Api RESTful, e a segunda "HttpWebRequest" seria um exemplo da chamada de um WebService?
Obrigada.
GOSTEI 1
Rodolfo Quinones

Rodolfo Quinones

01/09/2014

Boa tarde
Já vi este artigo em algum outro lugar...
GOSTEI 0
Rodolfo Quinones

Rodolfo Quinones

01/09/2014

Olá Rachel, tudo bem?

O Web API é um framework que surgiu mais recentemente, para a implementação de Web Services seguindo a arquitetura REST. A ideia por trás do desenvolvimento nessa tecnologia é construir serviços com uma estrutura mais simples, substituindo o uso de um XML mais complexo no padrão SOAP por algo equivalente em JSON ou ainda XML puro.

Segue um link de um artigo que escrevi aqui no site a respeito de Web API:

https://www.devmedia.com.br/asp-net-web-api-implementando-servicos-restful/31024

Além de uma estrutura mais simplificada, uma das vantagens em se adotar tal prática seria um menor tráfego de informações ao longo de uma rede (quando comparado a uma mensagem gerada em SOAP).

Acredito que se você já tem um Web Service que atende a um determinado tipo de demanda, talvez não seja tão produtivo substituir o mesmo por algo em Web API. A não ser que vc pretenda reestruturar todo o serviço, a fim de melhorar o código ou implementar novas funcionalidades. Se realmente optar por esse caminho, lembre-se de que a aplicação que consome o serviço também precisará ser alterada.

É importante lembrar ainda que serviços REST também podem ser desenvolvidos a partir de WCF. Além disso, a Microsoft recomenda atualmente que Web Services em SOAP sejam criados usando WCF ao invés do padrão ASMX (mais uma vez, se o seu serviço atende ao que se espera, mudar não trará tantos retornos a meu ver).

Espero que tenha ajudado.




Olá, boa tarde
Acho que já vi este artigo em algum outro lugar
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

01/09/2014

Boa tarde
Já vi este artigo em algum outro lugar...


Olá, Dolfo. Tudo bem?

Poderia nos informar em qual outro site você encontrou esse artigo, por favor?
GOSTEI 0
Rodolfo Quinones

Rodolfo Quinones

01/09/2014

Hola Joel, bom dia
Foi aqui no Equador, pero não me recuerdo o site, já faz algun tempo. Mas se você deseja mesmo, posso procurar por aqui...
Abraços
GOSTEI 0
POSTAR