PR:この記事にはアフィリエイトリンクが含まれます。
C#でWeb APIを作る実務は、JSONを返すところで終わりません。入力を確かめ、DBに保存し、利用者の認証と操作権限も扱って初めて、安全に運用できるAPIになります。
ASP.NET CoreがHTTP処理を受け持ち、EF CoreがDBとの橋渡しをします。両者の役割を分けておくと、障害が起きたときに調査箇所を絞りやすくなりますよね。
例として、ログインした利用者が自分の注文を登録し、あとから参照するAPIを考えます。認証から保存まで、処理ごとの責任範囲をこの流れに沿って整理しましょう。
教材の早見表
書籍ごとに対象版も扱う技術も異なります。下の表にAPI、認証、EF Core、テストの範囲をまとめました。
| 書籍 | 対象 | 主に扱う範囲 |
|---|---|---|
| .NET 10 Revealed | .NET 10、C# 14 | ASP.NET Core 10のAPI、EF Core |
ASP.NET Core MVCプログラミング入門 | .NET 7 | Web API、認証、EF Coreの例 |
独習ASP.NET Core | 対象版の明記なし | EF Coreの基礎、Web API |
ASP.NET Core in Action, Third Edition | .NET 7 | Bearer token認証、EF Core、テスト |
バージョン差は実装時の手直しにも関わります。.NET 10は2028年11月14日までサポート予定ですが、.NET 7のサポートは2024年5月14日に終了しました。新規開発ではコード例の対象版を確かめてください。
日経BP版の定価は税込3,740円、翔泳社版は税込4,290円が目安です。実売価格は時期や店で変わるため、購入時に確認しましょう。
実務の全体像
まず整理するのは、利用者ごとに許す操作と見せるデータです。注文APIなら、ログイン済みの人が注文を作成し、自分の注文を参照できる仕様が基本になります。
API層はHTTPを受け取り、サービス層は業務ルールを処理し、EF CoreはDBアクセスを担います。責務が分かれていれば仕様変更の影響先を追いやすくなります。層は必要な分だけ設ければ十分です。
受信後は入力を検証します。認証と権限を確かめたうえで業務処理を行い、DBに保存して結果を返す流れです。失敗時の処理も整理すると、401や403を返す場所が明確になります。
正常に動くかだけでは足りません。未ログインや権限不足、存在しないID、不正な入力も確かめましょう。失敗時の応答まで決めると、利用者にとって扱いやすいAPIになります。
API設計
入力用と出力用のDTOを用意すれば、内部の列名や管理フラグが表に出ません。DBの構造を変更しても、クライアントへの影響を小さくできます。
[ApiController]とデータ注釈を使うと、必須項目や文字数などの基本検証を組み立てやすくなります。一方、注文可能な商品か、在庫が足りるかといった業務ルールはサービス層で判定してください。
作成成功には201、入力不備には400を使います。未認証は401、権限不足は403、対象なしは404です。応答の意味が揃っていると、呼び出し側も次の動作を決めやすくなります。
一覧APIはページ番号と取得件数に上限を設け、必要な列に絞って返します。全件取得や巨大な応答は、データが増えたとき処理時間とメモリを圧迫します。設計の早い段階で考えておきたい点です。
認証と認可
認証は利用者が誰かを確かめ、認可は許可する操作を決める処理です。トークンが有効でも、すべての注文を読めるとは限りません。ログイン確認と所有権確認は別の判断です。
JWTでは署名と発行者を検証し、対象者と有効期限も確かめます。トークンはURLに含めず、通信にはHTTPSを使い、署名鍵や接続情報をソースコードへ直書きしないことが基本です。
ASP.NET Coreで認証方式を登録した後、リクエストパイプラインではUseAuthenticationをUseAuthorizationより先に実行します。[Authorize]やRequireAuthorizationを各エンドポイントに設定し、保護範囲を明示してください。
ロールやポリシーを使っても、注文の所有者確認は別に必要です。リクエスト本文の利用者IDを信頼せず、検証済みクレームとDB上の所有者を照合します。
EF Core
DbContextはリクエスト単位で扱います。参照だけの一覧はAsNoTrackingを使うと、変更追跡の負荷を抑えられます。必要なデータを非同期で取得するのも基本です。
EF CoreのエンティティとAPIのDTOは役割が異なるため、分けておくと保守しやすくなります。更新時には受け取った値を丸ごとコピーせず、変更を許可した項目だけを反映してください。
検索結果はSelectで必要な列に絞り、ページングもDB側で処理します。関連データをループ内で個別取得するとN+1問題が起きるため、ログや実行SQLで問い合わせ回数を確かめましょう。
スキーマ変更はマイグレーションで履歴管理し、本番DBへの反映はリリース手順に組み込みます。複数更新の整合性にはトランザクション、同時更新での上書きには楽観的同時実行制御を検討してください。
新版と実装書
『.NET 10 Revealed: Master the Latest Advancements in .NET』は、.NET 10とC# 14を扱う235ページの書籍です。中級者向けで、ASP.NET Core 10のAPIやEF Coreなど、新しい技術を広く押さえられます。
APIの章は37〜57ページ、EF Coreの章は157〜180ページにあります。目次では認証やテストの独立した章を確認できません。認証の実装手順を学ぶ本としては範囲が足りず、APIとデータアクセスを整理する教材です。
『ASP.NET Core in Action, Third Edition』は984ページで、対象は.NET 7です。Web API、Bearer tokenによる保護、EF Coreに加え、単体テストと統合テストも扱います。実装から検証まで幅広く学べる一冊です。
認証と認可の考え方に加え、テストを組み合わせる流れをまとめて追えます。ただし.NET 7はサポート終了済みです。新しい案件で読むなら、コード例をそのまま採用せず、.NET 10の設定やAPIとの差を確認してください。
日本語の基礎書
『ASP.NET Core MVCプログラミング入門 .NET 7対応版』は376ページ。Web APIは第9章、認証は第12章で扱います。著者のサポートページには、第3章でdotnet efを使うEFの実装例も掲載されています。
APIと認証を日本語で追いたい人には読み進めやすい構成です。定価は税込3,740円が目安。対象の.NET 7はサポート終了済みなので、既存コードや概念の理解に活用し、実装時には現行版との差を補いましょう。
『独習ASP.NET Core』は672ページ。解説、練習問題、理解度チェックの3段階で基礎を固められます。EF Coreはモデル、エンティティ、マイグレーション、LINQ検索、登録・更新・削除まで扱い、第9章にWeb APIの節があります。
定価は税込4,290円が目安で、実売価格は時期や店舗で変わります。具体的な.NET対象版や独立した認証・テスト章を軸にした本ではありません。EF Coreの操作を順に学び、実務の基礎を固めたい人に合います。
結論
新規APIを現行環境で学ぶなら、.NET 10対応の『.NET 10 Revealed』をAPIとEF Coreの基準にするのが堅実です。認証やテストは別の実装資料で補い、トークン検証と利用者ごとのデータ制御まで手を動かしてください。
日本語でEF Coreの基礎を学ぶなら『独習ASP.NET Core』が軸になります。認証付きAPIの流れを一冊で追う場合は『ASP.NET Core in Action』が役立ちますが、.NET 7のコードを現行環境へ読み替える必要があります。
本番を意識するなら、DTOや入力検証、認証と所有者確認、マイグレーション、異常系テストを小さなAPIに組み込んでみましょう。機能ごとに確かめることで、書籍の知識を実務の判断へ結び付けられます。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。




