Quero testar a diferença entre o ServiceStack Web e a webAPI embutida da Microsoft, e ver quais vantagens existem, então tente construir uma aplicação ServiceStack Web Service hoje mesmo
1: Criar um novo projeto web vazio em .NET 4.5 e então usar o comando nuget para instalar o ServiceStack:
.NET deve ser maior ou igual à versão 4.5, o projeto 4.0 não será instalado com sucesso! Como mostrado na figura abaixo.
2: Criar um novo modelo e pasta de serviço
Crie uma entidade de solicitação e resposta com o seguinte código:
3: Criar uma interface de serviço na pasta de serviço
4: Crie uma nova classe global de aplicação chamada Global.asax para este projeto, e o código é o seguinte:
5: Modificar a configuração do web.config, adicionar um novo nó system.webServer e a configuração completa é a seguinte:
Até agora nosso serviço foi concluído, executando o programa pode ver a interface da seguinte forma,GetAllUserInfoRequest e GetByAgeUserInfoRequest podem ser entendidos como métodos reais de chamadaOs parâmetros definidos nele podem ser interpretados como os parâmetros de solicitação do método, como mostrado na figura abaixo:
Os métodos de serviço no ServiceStack são chamados Any, Get e Post, que também são tipos de requisição suportados pelo ServiceStack.Qualquer um significa que o serviço pode ser chamado tanto em HTTP Get quanto em HTTP Post。 Isso fortalece e simplifica a implementação de WebServices no estilo RESTFull. Basta adicionar amor [Rota(...)] nesses métodos Atributos. No ServiceStack,A diferença entre métodos e métodos é distinguida pelos parâmetros do serviço e do objeto de requisição Request DTO, em vez de diferenciar pelo nome do método como em WCF. Isso significaUm objeto DTO de requisição não pode ser reutilizado entre múltiplos Serviços no ServiceStack。
Adicionar o parâmetro format após o parâmetro get request pode retornar o tipo de resposta, como: format=json, format=xml, etc., e parece que o formato jsonp também é suportado.
Por exemplo: http://localhost:52079//json/reply/GetAllUserInfoRequest?format=xml
Resumindo, comparado à API web da Microsoft, o ServiceStack parece não ter conceito de método na web, é uma entidade de requisição diferente que é um método, pode gerar automaticamente documentos de interface, e o formato da resposta pode ser retornado através do formato (embora o da Microsoft também seja possível, mas parece mais simples que o da Microsoft)
Referência: https://www.cnblogs.com/woxpp/p/5012947.html
https://msdn.microsoft.com/zh-cn/magazine/dn342871.aspx
https://github.com/ServiceStack/ServiceStack/wiki
Por fim, anexe o código-fonte do projeto!
Turistas, se quiserem ver o conteúdo oculto deste post, por favor Resposta
|