Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 491090
            [titulo] => Web API x Web Services
            [dataCadastro] => DateTime Object
                (
                    [date] => 2014-09-02 15:33:57
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 271591
            [status] => A
            [isExample] => 
            [NomeUsuario] => Renato Jose Groffe
            [Apelido] => renato_groffe
            [Foto] => Foto Artigos-2.jpg
            [Conteudo] => 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:

[url:descricao=http://www.devmedia.com.br/asp-net-web-api-implementando-servicos-restful/31024]http://www.devmedia.com.br/asp-net-web-api-implementando-servicos-restful/31024[/url]

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. ) )

Web API x Web Services

Rachel Andrade
   - 01 set 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á.

Post mais votado

Renato_groffe
|
MVP
    02 set 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:

http://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.

Rachel Andrade
   - 02 set 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.

Renato_groffe
|
MVP
    02 set 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:

http://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.

Rachel Andrade
   - 10 set 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.

Renato_groffe
|
MVP
    17 set 2014

Sem problemas Rachel.

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

Abs

Alex Sander
   - 26 nov 2015


Citação:
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.

Helder
   - 19 fev 2016

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

Viniciusbarbosa
|
MVP
Pontos: 300
    01 jun 2016


Citação:
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 ???