Building Web APIs with ASP.NET Core
作者: Valerio De Sanctis
语言: 英文
出版年份: 2023
编程语言: C#
下载链接:
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。

书籍摘要

书籍定位

  • 面向:希望用 ASP.NET Core 构建稳定、安全、可维护 Web API 的 .NET 开发者
  • 特色:全程以“棋盘游戏俱乐部”为背景,从零到生产环境,完整落地 REST、GraphQL、gRPC 三种主流风格
  • 版本:基于 .NET 6 / ASP.NET Core 6 LTS,示例代码可直接运行

知识地图(4 部分 12 章)

Part 1 入门

  1. Web API 全景

    • 什么是 Web API、四种使用场景(Public/Partner/Internal/Composite)
    • REST、SOAP、GraphQL、gRPC 优劣对比
    • ASP.NET Core 架构:Program.cs 统一入口、服务与中间件、Minimal API vs Controller、异步模式 TAP
  2. 第一个项目 MyBGList

    • 安装 VS2022 + .NET 6 SDK → 创建 Web API 模板
    • launchSettings.json / appsettings.json 详解
    • 用 BoardGameController 替换 WeatherForecast,完成 SwaggerUI 初体验
  3. RESTful 约束

    • 6 大约束:Client-Server、Stateless、Cache、Layered、COD、Uniform Interface
    • 实操:CORS、响应缓存、HATEOAS、API 文档与版本控制

Part 2 基础概念

  1. 数据建模

    • SQL vs NoSQL:为何选择 SQL Server + EF Core
    • 安装本地 SQL Express → 用户/登录 → 建库建表
    • EF Core:Code-First、DbContext、迁移、复合主键、导航属性
  2. CRUD 与查询

    • LINQ 查询/方法语法、Lambda、IQueryable
    • 注入 DbContext → 同步 vs 异步
    • 用 CsvHelper 将 2 万条 Kaggle 棋盘游戏导入数据库
    • 实现分页、排序、过滤(Dynamic LINQ)
  3. 数据验证与错误处理

    • 内置验证属性 + 自定义验证属性
    • ModelState 自动 vs 手动校验
    • 统一异常中间件 → ProblemDetails(RFC 7807)

Part 3 进阶主题

  1. 日志系统

    • ILogger 接口、日志级别
    • Serilog:结构化日志、Console/Sink/Enricher 配置
  2. 缓存

    • 响应缓存、Cache Profile、内存缓存、分布式缓存(SQL Server / Redis)
  3. 认证与授权

    • ASP.NET Core Identity:用户、角色、JWT
    • RBAC:Claim、Policy、AuthorizeAttribute
    • 测试接口保护流程
  4. 超越 REST

    • REST 缺点:Over-fetching / Under-fetching
    • GraphQL 查询与 Mutation 实现
    • gRPC Server & Client、双向流、授权
    • 其他协议:NDJSON、Falcor、Thrift

Part 4 走向生产

  1. API 文档最佳实践

    • Swagger/OpenAPI + Swashbuckle
    • XML 注释、注解、过滤、自定义 UI
  2. 发布与部署

    • 预发布检查、域名、CDN
    • Azure 创建 Windows VM → 安装 IIS、SSL、Web Deploy
    • Visual Studio Publish Profile → 一键部署

亮点速览

  • 实战驱动:从空数据库到承载 2 万条记录的生产级 API
  • 安全贯穿:CORS、JWT、RBAC、异常统一处理、日志审计
  • 性能优化:分页、缓存、异步、结构化日志
  • 可扩展架构:Minimal API 与 Controller 混用、分层系统、版本化路由
  • DevOps 视角:Secret Manager、CI/CD、云端部署、Swagger 文档自动化

适合读者

  • 已掌握 C# 基础、希望深入后端开发的工程师
  • 需要为前端/移动端/第三方提供稳定 API 的技术负责人
  • 准备将 .NET 应用迁移到云原生的架构师

阅读完毕,你将拥有一套可直接落地的“设计-开发-测试-部署”全链路方法论,以及一份可运行的 MyBGList 示例代码库。

期待您的支持
捐助本站