Asp.netコアWebAPIプロジェクトであるプロジェクトに取り組んでいます。ほとんどのプロジェクトはAsp.netMVCとCoreMVCで行いましたが、Core WebAPIに基づいて新しいプロジェクトを行います。 Core MVCには、管理パーツなどのAreasを作成できるAreasの概念があります。しかし、Asp.netコアWeb APIプロジェクトでAreasを使用できますか? はいの場合、どうすればよいですか? もっと良い方法があると思っているなら教えてください。
APIコントローラーをエリアに配置して、グループ化することができます。 ただし、基本的にはコントローラーでルートを提供するため、自分でさまざまなルートを作成できます。
[Route("api/myarea/v1/[controller]")]
ApiControllerを自分の領域の下に置いて試したのと同じ問題があるため、構造は次のようになります。
これが内部のApiコントローラーです
エリア/ GL /コントローラー
[Area("GL")]
[Route("api/[controller]")]
[ApiController]
[HttpGet]
public IActionResult Get()
{
return Ok("api controller");
}
しかし、自分のURLにアクセスすると
http:// localhost :48357 / GL / Api / Get
または
http:// localhost :48357 / Api / GL / Get
また
http:// localhost :48357 / Api / Get
私は得る
ステータスコード:404; 見つかりません
これがのコードです
Startup.cs
routes.MapAreaRoute(
name: "AreaGL",
areaName: "GL",
template: "GL/{controller=Home}/{action=Index}/{id?}"
);
この問題について私を助けてください、私がここで間違っていることは何ですか?
@farhadibehnamまでお問い合わせいただきありがとうございます。
コントローラーをエリアに配置するには、 https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areasで説明されているように、属性ルートに{area:exists}
ルート制約を適用する必要があります。 view = aspnetcore-2.2。
最も参考になるコメント
APIコントローラーをエリアに配置して、グループ化することができます。 ただし、基本的にはコントローラーでルートを提供するため、自分でさまざまなルートを作成できます。
[Route("api/myarea/v1/[controller]")]