# ASP.NET-Core-RESTful-Note **Repository Path**: surbowl/ASP.NET-Core-RESTful-Note ## Basic Information - **Project Name**: ASP.NET-Core-RESTful-Note - **Description**: 杨旭《使用 ASP.NET Core 3.x 构建 RESTful Web API》系列课程的学习笔记 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2020-02-08 - **Last Updated**: 2021-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ASP.NET-Core-RESTful-Note [![image](https://gitee.com/surbowl/ASP.NET-Core-RESTful-Note/raw/master/cover.jpg)](https://www.bilibili.com/video/av77957694) 本仓库是[杨旭](https://www.cnblogs.com/cgzl/)(solenovex)《[使用 ASP.NET Core 3.x 构建 RESTful Web API](https://www.bilibili.com/video/av77957694)》课程的学习笔记。

包含课程的项目代码,并注释随堂笔记与资料。

与原项目略有不同,本项目使用 SQL Server 数据库。 ## 版本 `master` 分支是最新的,涵盖所有课程内容。

在寻找更早的版本?欢迎查看本仓库的 [Releases](https://gitee.com/surbowl/ASP.NET-Core-RESTful-Note/releases),在课程的每个阶段都有 Release;
例如:[截至视频 P8 的代码](https://gitee.com/surbowl/ASP.NET-Core-RESTful-Note/tree/P8)、 [截至视频 P19 的代码](https://gitee.com/surbowl/ASP.NET-Core-RESTful-Note/tree/P19) 等。

杨老师已在 GitHub 发布课程原版代码,[点此访问](https://github.com/solenovex/ASP.NET-Core-3.x-REST-API-Tutorial-Code)。 ## 小地图 - [课程视频](https://www.bilibili.com/video/av77957694) - [课程博文](https://www.cnblogs.com/cgzl/p/11814971.html) - [课程 PPT](https://github.com/solenovex/ASP.NET-Core-3.x-REST-API-Tutorial-Code/tree/master/PPT) - [ASP.NET Core 3.x 入门课程](https://www.bilibili.com/video/av65313713) - [How to unapply a migration](https://stackoverflow.com/questions/38192450/how-to-unapply-a-migration-in-asp-net-core-with-ef-core) - [GitHub 仓库](https://github.com/Surbowl/ASP.NET-Core-RESTful-Note) ## PATH [Routine.APi](https://gitee.com/surbowl/ASP.NET-Core-RESTful-Note/tree/master/Routine/Routine.APi) ``` │ appsettings.Development.json │ appsettings.json │ Program.cs │ Routine.APi.csproj │ Startup.cs │ ├─Controllers │ RootController.cs // api 根目录 │ CompaniesController.cs // api/companies 公司(单个/集合) │ CompanyCollectionsController.cs // api/companycollections 指定公司集合 │ EmployeesController.cs // api/companies/{companyId}/employees 员工(单个/集合) │ ├─Data │ RoutineDbContext.cs │ ├─DtoParameters // Uri query parameters │ CompanyDtoParameters.cs // -GET api/companies │ EmployeeDtoParameters.cs // -GET api/companies/{companyId}/employees │ ├─Entities │ Company.cs │ Employee.cs │ Gender.cs │ ├─Helpers │ ArrayModelBinder.cs // 自定义 ModelBinder,将 ids 字符串转为 IEnumerable │ IEnumerableExtensions.cs // IEnumerable 拓展,对集合资源进行数据塑形 │ IQueryableExtensions.cs // IQueryable 拓展,对集合资源进行排序 │ ObjectExtensions.cs // Object 拓展,对单个资源进行数据塑形 │ PagedList.cs // 继承 List,对集合资源进行翻页处理 │ ResourceUriType.cs // 枚举,指明 Uri 前往上一页、下一页或本页 │ ├─Migrations │ ... │ ├─Models │ CompanyFriendlyDto.cs // 公司简略信息 Dto │ CompanyFullDto.cs // 公司完整信息 Dto │ CompanyAddDto.cs // 添加公司时使用的 Dto │ CompanyAddWithBankruptTimeDto.cs // 添加已破产的公司时使用的 Dto │ EmployeeDto.cs // 员工信息 Dto │ EmployeeAddOrUpdateDto.cs // 添加或更新员工信息时使用的 Dto 的父类 │ EmployeeAddDto.cs // 添加员工时使用的 Dto,继承 EmployeeAddOrUpdateDto │ EmployeeUpdateDto.cs // 更新员工信息时使用的 Dto,继承 EmployeeAddOrUpdateDto │ LinkDto.cs // HATEOAS 的 links 使用的 Dto │ ├─Profiles // AutoMapper 映射关系 │ CompanyProfile.cs │ EmployeeProfile.cs │ ├─Properties │ launchSettings.json │ ├─Services │ ICompanyRepository.cs │ IPropertyCheckerService.cs │ IPropertyMapping.cs │ IPropertyMappingService.cs │ CompanyRepository.cs │ PropertyCheckerService.cs // 判断 Uri query parameters 中的 fields 是否合法 │ PropertyMappingValue.cs // 属性映射关系,用于集合资源的排序 │ PropertyMapping.cs // 属性映射关系字典,声明源类型与目标类型,用于集合资源的排序 │ PropertyMappingService.cs // 属性映射关系服务,用于集合资源的排序 │ └─ValidationAttributes // 自定义 Model 验证 Attribute EmployeeNoMustDifferentFromFirstNameAttribute.cs ```

欢迎大家对内容进行补充,只要是合理内容都可以 [pull](https://github.com/Surbowl/ASP.NET-Core-RESTful-Note/pulls)。

非常感谢杨老师 🤗