Como testar um serviço WebApi?
sou muito novo no WebApi e tenho lido informações sobre ele, mas não sei como começar a minha aplicação.
Já tive um projecto com muitos serviços da WFC com o. Net 3.5. Então, eu atualizei meu projeto para 4.5.1. Depois criei um controlador com o Assistente Visual Studio 2012. Então, quando o controlador é criado, eu vejo uma classe como um modelo com os métodos get, post, put, delete. Então eu coloco meu método de post e finalmente eu quero testar o serviço com um HttpClient.tentei aplicar a solução a verde do seguinte fórum: Como publicar um valor xml na api web?
Vou receber um texto XML com a estrutura de um modelo de contrato. Executei o meu projecto num servidor de desenvolvimento Visual Studio. Mas tenho problemas com a URL para testar o meu serviço. Vi muitas páginas onde as pessoas fazem algo assim.http://localhost:port/api/contract .Mas ainda não sei como é. obra. Então, como posso fazer para testar o meu serviço? Qual é o meu caminho ou url para testar o meu serviço? 5
Author: Maximus Decimus, 2015-06-04
1 answers
WebApi, como MVC, é tudo baseado no roteamento. A rota padrão é
/api/{controller}/{id}
(que pode, claro, ser alterada). Isso é geralmente encontrado no Arquivo ~/App_Start/WebApiConfig.cs
de um novo projeto, mas dado que você está migrando, você não tem isso mais provável. Então, para o Transferir, pode modificar o seu {[5] } para incluir:
GlobalConfiguration.Configure(WebApiConfig.Register);
Então, defina essa classe:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
Se criasse um controlador TestController
e quisesse fazer um pedido POST
à instância a correr localmente, teria acesso http://localhost:12345/api/Test/
(com o verbo apropriado). 12345
seria a porta local que o Visual Studio está a usar para hospedar o seu serviço (e pode ser encontrada ao ver as propriedades do projecto, navegando depois para a página "Web").
[TestMethod]
public void Should_Return_Single_Product()
{
// Arrange
var repo = new FakeRepository<Widget>();
var controller = new WidgetController(repo);
var expected = repo.Find(1);
// Act
var actual = controller.GetWidget(1) as OkNegotiatedContentResult<Widget>;
// Assert
Assert.IsNotNull(actual);
Assert.AreEqual(expected.Id, actual.Content.Id);
}
5
Author: Brad Christie, 2015-06-04 15:19:01