J'ai vérifié un certain nombre de liens pour comprendre la cause de l'erreur, mais sans résoudre mon problème.
J'essaie d'accéder à l'action WebAPi de Postman mais j'obtiens l'erreur ci-dessous.
"message": "Aucune ressource HTTP ne correspond à l'URI de la requête ' http: // localhost: 50684/api/albums/history '.",
"messageDetail": "Aucun type ne correspond au contrôleur nommé" album "."
Mon API.
[Authorize]
public class AlbumsController : ApiController
{
[HttpGet]
[Route("api/album/history/")]
public BaseTO GetHistory(string type,int id)
{
//api stuff
}
}
J'ai essayé avec api/album/history/{anything}
En passant un appel de Postman je passe: -
Toute aide/suggestion hautement appréciée. Merci
Avez-vous activé le routage d'attribut dans api config? config.MapHttpAttributeRoutes();
Avec votre route actuelle, vous devez la frapper via la chaîne de requête http://localhost:50684/api/albums/history?type=test&id=1
et décorer les paramètres avec [FromUri]
[HttpGet]
[Route("api/albums/history/")]
public IHttpActionResult GetHistory([FromUri]string type,[FromUri]int id)
{
//api stuff
}
ou pour frapper l'api via les paramètres de route - http://localhost:50684/api/albums/history/test/1
[HttpGet]
[Route("api/albums/history/{type}/{id}")]
public IHttpActionResult GetHistory(string type,int id)
{
//api stuff
}
J'ai eu le même problème que je viens de changer cela:
AllowInsecureHttp = true
public void ConfigureAuth(IAppBuilder app)
{
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
PublicClientId = "self";
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/api/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
AllowInsecureHttp = true
};
app.UseOAuthBearerTokens(OAuthOptions);
}
Votre code devrait être comme ça:
[Authorize]
public class AlbumsController : ApiController
{
[HttpGet]
[Route("api/albums/history/")]
public IHttpActionResult GetHistory(string type,int id)
{
//api stuff
}
}
et votre appel de Postman devrait être comme ça et assurez-vous que votre méthode dans Postman est GET:
http: // localhost: 50684/api/album/history? type = test & id = 1
espérons que cela vous aidera.