Program.csの目的
• ASP.NET Core アプリケーションのエントリーポイント(起動ファイル)です。
• サーバーの立ち上げ処理、
• サービス(DIコンテナ)の設定、
• ミドルウェア(リクエストの処理パイプライン)の設定、
• APIルーティングの設定、
をまとめて記述します。
• ここを修正・拡張することで、アプリ全体の動作や提供する機能を制御します。
DIコンテナとは
Dependency Injection (依存性の注入) を実現するためのフレームワーク
Program.cs ファイルの解説(行ごと)
using InsuranceProductManager;
using Microsoft.EntityFrameworkCore;
• ① 名前空間の読み込み。
• InsuranceProductManager はあなたのプロジェクトのルート名前空間。
• Microsoft.EntityFrameworkCore はEntity Framework Core(DB操作ライブラリ)を使うため。
var builder = WebApplication.CreateBuilder(args);
• ② ASP.NET Core のWebアプリケーションを作成するためのビルダーを初期化。
• args はコマンドライン引数。
• ここからアプリのサービス登録や設定を始める。
// 1. 必要なサービスを登録(Controllers, Swagger, DbContextなど)
builder.Services.AddControllers();
• ③ MVCやAPIのコントローラー機能をサービスコンテナに登録。
• これで [ApiController] 属性のついたクラスが動作可能になる。
builder.Services.AddEndpointsApiExplorer();
• ④ Swagger(OpenAPI)でAPIエンドポイントの情報を生成・収集するためのサービスを登録。
builder.Services.AddSwaggerGen();
• ⑤ Swagger UI(ブラウザでAPI仕様を確認・操作する画面)を生成するためのサービスを登録。
// ✅ AppDbContext を登録(必要に応じて接続文字列を調整)
builder.Services.AddDbContext<AppDbContext>(options =>
options.UseInMemoryDatabase("InsuranceProductsDB")); // SQLite や SQL Server に変更も可
• ⑥ あなたが定義した AppDbContext (データベース操作の窓口)をサービスに登録。
• 今回はメモリ上のDB(永続化しないテスト用DB)を使っている。
• 本番ではここをSQL ServerやSQLiteなど実DBに切り替え可能。
var app = builder.Build();
• ⑦ ここまでで登録したサービスや設定を使って実際のアプリケーションインスタンスを生成。
// 2. ミドルウェアの設定
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
• ⑧ アプリが開発環境のときだけSwaggerを有効化。
• UseSwagger() はSwagger仕様のJSONを出すミドルウェア。
• UseSwaggerUI() はSwaggerのWeb画面を提供するミドルウェア。
app.UseHttpsRedirection();
• ⑨ HTTPアクセスを自動でHTTPSにリダイレクトするミドルウェアを有効化。
app.UseAuthorization();
• ⑩ 認可(Authorization)ミドルウェアを有効化。
• ただし認証ミドルウェアはこのコードには含まれていないため、今は認可機能は限定的。
// 3. コントローラールートのマッピング
app.MapControllers();
• ⑪ コントローラークラスで定義したAPIのルーティングを有効化。
• これにより [Route] 属性がついたコントローラーのメソッドにリクエストを振り分ける。
app.Run();
• ⑫ アプリケーションを起動し、リクエストの受け付けを開始。