Como você depurar rotas de API do MVC 4?
Eu tenho um jogo WP7 que usa RESTsharp para se comunicar com o meu servidor RESTful MVC4, mas muitas vezes eu tenho problemas para fazer pedidos que funcionam e, portanto, eu quero depurar onde ele falhar.
Este é um exemplo em que o construtor no meuGameController
é atingido, mas oPost
método não é atingido, e eu não entendo o porquê.
Código do cliente:
public void JoinRandomGame()
{
client = new RestClient
{
CookieContainer = new CookieContainer(),
BaseUrl = "http://localhost:21688/api/",
};
client.Authenticator = GetAuth();
RestRequest request = new RestRequest(Method.POST)
{
RequestFormat = DataFormat.Json,
Resource = "game/"
};
client.PostAsync(request, (response, ds) =>
{});
}
Código do servidor:
public void Post(int id)
{
if (ControllerContext.Request.Headers.Authorization == null)
{
//No auth
}
if (!loginManager.VerifyLogin(ControllerContext.Request.Headers.Authorization.Parameter))
{
//Failed login
}
string username;
string password;
LoginManager.DecodeBase64(ControllerContext.Request.Headers.Authorization.Parameter, out username, out password);
gameManager.JoinRandomGame(username);
}
Minhas rotas são assim
routes.MapHttpRoute(
name: "gameAPI",
routeTemplate: "api/game/{gameId}",
defaults: new
{
controller = "game",
gameId = RouteParameter.Optional
}
);