こんにちは。 ASP.net Core 2.x はいいぞ
ASP.NET Core を利用しWebAPIを作成していると ルートページ(http://example.com/) とかを開いたら自動で Swagger ページに遷移してほしいことはたまによくあると思います。
検証環境
- Microsoft Azure Web Apps
ルートページに対応する Controller を追加する
ルーティングの設定
Visual Studio 2017 などを利用して Controller を 自動生成すると 標準で {ルートURL}/api/{Controller名} みたなルーティングになっていると思います。
これは、[Route("")] で設定されています。
今回は、ルートページを開いたときにあれこれしたいので、 Route attributeを消して、ルーティングの設定を消してください。
自動リダイレクトするようにする
リダイレクトされるようにするためには、 IAction Result を返り値に設定し、
RedirectPermanent();
のメソッドを利用することでできます。
引数に渡す文字列は、 ルートURLからのルーティングを設定します。
具体的には、今回の場合は、 "{ルートURL}/Swagger" に飛ばしたいので、以下のようにします。
RedirectPermanent("/swagger");
ソースコード
public class HomeController : Controller { [HttpGet] public IActionResult home() { return RedirectPermanent("/swagger"); } }