Estudando um pouco sobre serviços encontrei um POST interessante sobre a diferença de WCF, Webervice e WebApi, entendo que muita gente tem duvidas quanto a esse assunto, então estou replicando a informação
Web Service
- É baseado em SOAP e retorna os dados por padrão em XML.
- Ele suporta apenas o protocolo HTTP.
- Não é open source, mas pode ser consumido por qualquer cliente que entende xml.
- Pode ser hospedado apenas no IIS.
- Possui bastante documentação e possui fácil integração com outros frameworks baseados em .Net
WCF
- Ele também é baseado em SOAP e retorna os dados no padrão XML.
- É a evolução do serviço web (ASMX) e suporta vários protocolos como o TCP, HTTP, HTTPS, Pipes , MSMQ.
- O principal problema com WCF é, a sua configuração tediosa e extensa.
- Não é open source, mas pode ser consumido por qualquer cliente que entende xml.
- Ele pode ser hospedado no IIS ou usando window service.
WCF Rest
- Para usar WCF como um serviço WCF Rest basta você habilitar o webHttpBinding.
- Ele suporta HTTP GET e POST por atributos [WebGet] e [WebInvoke] respectivamente.
- Para permitir que outros verbos HTTP você tem que fazer configurações adicionais no IIS, o que pode ser um pouco custoso.
- Passando dados através de parâmetros usando um WebGet o UriTemplate deve ser especificado e configurado.
- Ele suporta XML, JSON e formato de dados ATOM.
Web Api
- Este é o mais novo framework para a construção de serviços HTTP e possui uma proposta de ser mais simples e fácil de utilizar.
- Web API é open source e projetada para a construção de serviços REST-Ful com o .NET Framework.
- Ao contrário do serviço WCF Rest, ele usa os recursos do HTTP (como URIs, pedido / resposta cabeçalhos, o cache, controle de versão, vários formatos de conteúdo)
- Ele também suporta os recursos MVC como routing, controllers, action results, filter, model binders, IOC container e também dependency injection,
- Ele pode ser hospedado como aplicação ou no IIS.
- É uma arquitetura considerada “leve” e boa para dispositivos que a largura de banda é limitada, como dispositivos móveis por exemplo.
- As respostas são formatadas pelo MediaTypeFormatter em JSON, XML ou qualquer formato que você deseja adicionar como um MediaTypeFormatter.
Considerações finais:
- Escolha WCF quando você quer criar um serviço que deve suportar cenários especiais, tais como mensageria, filas de mensagens, comunicação duplex etc.
- Escolha WCF quando você quer criar um serviço que pode usar canais de transporte rápidas quando disponíveis, tais como TCP, Pipes, ou talvez mesmo UDP (em WCF 4.5).
- Escolha Web API quando você quer criar um serviço sobre protocolo HTTP como Post , Get ou Put.
- Escolha Web API quando você deseja expor seu serviço para uma ampla gama de clientes, incluindo navegadores, celulares, iphone e tablets.
Esta é a minha opinião sobre qual serviço escolher. Avalie bem o seu cenário, seus recursos e tempo disponível para criação de cada projeto.
Fonte: https://rodrigodotnet.wordpress.com/2017/05/02/qual-a-diferencas-entre-wcf-webservice-e-webapi/