web-dev-qa-db-ja.com

リクエストURIに一致するHTTPリソースが見つかりませんでした

エラーの原因を理解するためにいくつかのリンクを確認しましたが、問題は修正されていません。

PostmanからWebAPiアクションにアクセスしようとしていますが、以下のエラーが発生します。

"メッセージ": "リクエストURIに一致するHTTPリソースが見つかりませんでした ' http:// localhost:50684/api/albums/history '。"、
"messageDetail": "'album'という名前のコントローラーに一致するタイプが見つかりませんでした。"

私のAPI。

[Authorize]
public class AlbumsController : ApiController
{

   [HttpGet]
   [Route("api/album/history/")]
   public BaseTO GetHistory(string type,int id)
   {  
      //api stuff
   }
 }

api/album/history/{anything}で試してみました

郵便配達員から電話をかけている間、私は通りかかっています:-

  • 承認トークン
  • タイプ
  • Id

どんな助け/提案も大歓迎です。ありがとう

5
Kgn-web

Api configで属性ルーティングを有効にしましたか? config.MapHttpAttributeRoutes();

現在のルートでは、クエリ文字列http://localhost:50684/api/albums/history?type=test&id=1を介してヒットし、パラメータを[FromUri]で装飾する必要があります。

[HttpGet]
   [Route("api/albums/history/")]
   public IHttpActionResult GetHistory([FromUri]string type,[FromUri]int id)
   {  
      //api stuff
   }

またはルートパラメータを介してAPIをヒットする-http://localhost:50684/api/albums/history/test/1

[HttpGet]
   [Route("api/albums/history/{type}/{id}")]
   public IHttpActionResult GetHistory(string type,int id)
   {  
      //api stuff
   }
6
Developer

私はこれを変更したのと同じ問題を抱えていました:

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);

    }
0
merrais

コードは次のようになります。

[Authorize]
public class AlbumsController : ApiController
{

   [HttpGet]
   [Route("api/albums/history/")]
   public IHttpActionResult GetHistory(string type,int id)
   {  
      //api stuff
   }
 }

postmanからの呼び出しは次のようになり、PostmanのメソッドがGETであることを確認してください。

http:// localhost:50684/api/album/history?type = test&id = 1

それがあなたを助けることを願っています。

0
Naman Upadhyay