ASP.NET Core与RESTful API 开发实战
上QQ阅读APP看书,第一时间看更新

前言

编写背景

微软于2016年推出.NET Core和ASP.NET Core。作为一个全新的开发平台,.NET Core对.NET Framework框架进行了重大的改进,解决了.NET Framework的一个非常明显的缺陷,实现了跨平台性。使用.NET Core能够开发出适用于各种平台以及各种不同类型的应用,如Web应用程序、微服务、控制台程序、Windows桌面应用(自.NET Core 3.0起)等,并能够轻松地部署到各个平台上。同时,.NET Core沿用了.NET Framework框架的优点,使.NET开发人员能够顺利上手并在工作中使用。.NET Core从发布之初就加入开源组织,并受到开发者社区的支持,目前.NET Core已经达到2.2版本,其成熟性、稳定性、高性能、模块化等特点将帮助开发者开发出适用于各种场景的企业级应用。

作为.NET Core平台的重要角色,ASP.NET Core旨在开发现代主流的Web应用程序。与.NET Core一样,ASP.NET Core同样具有跨平台、开源、模块化、高性能等特点,这些特点使它完全超越了ASP.NET。ASP.NET Core还具有一些重要特点,如内置依赖项注入、轻型的高性能模块化HTTP请求管道、灵活的配置与日志系统等,使开发者能够轻松地开发出更灵活、更安全和高质量的Web应用程序。同时,ASP.NET Core内置了对云平台和容器的支持,使它能够快速地部署到不同的平台中。

自从2000年Roy Thomas Fielding在其博士论文中首次提出REST后,REST一直就是人们讨论的话题,并且不断地应用于各种技术的实现中。作为一种软件架构风格,REST旨在构建简单、可靠、高性能、高伸缩性的Web应用。然而,由于它并不像标准一样具有详尽的定义、说明与规则,并且开发者易受其他Web服务开发风格的影响,因此多数人对于它的认识与理解不够全面,甚至存在一定程度上的误解。

本书以ASP.NET Core与REST为主题,介绍了如何使用ASP.NET Core开发出规范的RESTful API应用。本书不仅详细地介绍了REST、REST约束以及HTTP协议,还深入介绍了ASP.NET Core及其重要性。充分理解ASP.NET Core与REST有助于开发者设计出规范的RESTful API。

本书内容

本书系统介绍ASP.NET Core与RESTful API应用的开发,共分为10章。前3章重点介绍理论知识,后7章主要讲述实践操作。前3章的理论为后7章的实践提供了支持,如第1章介绍的HTTP消息头和状态码、第3章介绍的ASP.NET Core核心特性,会在后7章中经常提及并用到。这种从理论到实践、由浅入深的学习方式有助于读者进一步掌握所学的内容。如果你刚开始学习.NET Core开发,建议按照章节顺序阅读本书。

从第4章开始的项目实践将带领读者一步一步地开发RESTful API应用,从项目的创建到实现对资源的操作,从使用Entity Framework Core到高级查询与日志,从为项目添加认证功能到为项目应用ASP.NET Core提供的各种安全特性,从测试到部署,这一系列内容贯穿了一个实际项目的整个开发流程。读者若能从头到尾实践本书中项目的开发流程,将会受益匪浅。同时,在介绍项目开发的过程中,对于遇到的新知识,本书也进行了必要的理论性介绍,如第4章中的仓储模式、第7章中的HTTP缓存、第8章中的CORS、第10章中的Docker与Azure等。

本书主要内容如下。

第1章介绍API与REST的基本概念、REST约束、HTTP协议,以及REST中资源表述常用的JSON格式与XML格式等。

第2章介绍.NET Core、.NET Standard以及ASP.NET Core,讨论ASP.NET Core自2.0后各个版本新增加的特性与变化,展示开发环境的设置以及如何开始创建第一个Web API应用。

第3章深入剖析ASP.NET Core提供的重要特性,如启动与Kestrel服务器、中间件、依赖注入、MVC、配置、日志、错误处理。

第4章介绍实例项目(该项目将贯穿本书后面的章节)的创建,讨论如何准备测试数据、仓储模式,以及如何实现对资源的各种操作,如获取、创建、删除、更新等,最后讨论内容协商及其实现方式。

第5章介绍Entity Framework Core以及如何在项目中使用它,并使用它替换原来的内存数据源方式,以及使用异步方式替换原来的同步方式。

第6章介绍分页、过滤、搜索、排序的实现,以及如何记录日志并处理异常。

第7章介绍较为复杂的主题,包括缓存以及不同种类缓存的实现方式、并发控制的实现方式、API版本、HATEOAS,以及GraphQL及其实现。

第8章介绍如何保护API应用程序,包括为应用程序添加认证功能、使用Identity保存用户信息、使用HTTPS与HSTS。该章还会讲解数据保护API和用户机密的概念与使用,以及跨域资源访问及其实现方式。

第9章介绍如何对应用程序进行单元测试、集成测试,并为其创建OpenAPI文档。

第10章介绍如何将应用程序部署到不同的位置,如IIS、Docker以及Azure,同时介绍Docker与Azure的概念与基本操作。

建议与反馈

完成本书的写作是一件不容易的事。本书尽可能涵盖相关的知识点,并尽力确保内容的正确性,使读者能够从中有所收获。然而由于个人水平有限,书中疏漏之处在所难免,如果你在学习过程中发现书中的错误或对本书有任何建议和意见,既可以告诉作者或本书编辑,也可以提交到异步社区中,我们将非常感激。

作者邮箱:ictcm@outlook.com

编辑邮箱:zhangshuang@ptpress.com.cn

致谢

感谢我的家人在我写作期间给予我的支持和包容,也感谢那些帮助我解决疑问并给出建议的技术专家和同事。最后,感谢本书编辑为本书提供的指导与建议。