1. 什么是RESTful API?
我第一次接触RESTful API是在2015年做一个电商项目的时候。当时团队决定采用前后端分离架构,后端需要提供一套统一的接口规范。经过多方比较,我们最终选择了RESTful风格。现在回想起来,这个决定真是太明智了。
RESTful API本质上是一种基于HTTP协议的接口设计风格。它的核心思想是把服务器上的数据都看作资源,每个资源都有一个唯一的URI标识。比如在我们的学生信息系统中,/students可以表示所有学生资源,/students/1表示ID为1的特定学生。
这种设计有三大优势特别打动我:
- 简单直观:URI就是资源地址,HTTP方法就是操作指令
- 灵活扩展:前后端可以独立开发和部署
- 性能优越:相比SOAP等协议,数据传输量更小
在实际项目中,我见过太多因为接口设计混乱导致的维护噩梦。有一次接手一个老项目,发现同一个用户查询功能,有人用/getUser,有人用/queryUser,还有人用/userInfo,简直让人崩溃。而RESTful风格的/GET /users/{id}就清晰多了。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 搭建开发环境
2.1 开发工具准备
工欲善其事,必先利其器。我建议使用Visual Studio 2022社区版,这是微软提供的免费IDE,对C#开发非常友好。安装时记得勾选".NET桌面开发"和"ASP.NET和Web开发"工作负载。
这里有个小技巧:安装完成后,建议立即安装Resharper插件。虽然它不是必须的,但能极大提升代码质量和开发效率。我团队的新人用了都说好,自动补全和代码提示特别智能。
2.2 创建项目结构
打开VS2022,新建一个解决方案,我习惯命名为StudentSystem。然后在解决方案中添加两个项目:
- StudentSystem.API (类库项目,存放服务端代码)
- StudentSystem.Client (控制台应用,客户端演示)
记得在NuGet包管理器中为API项目添加这些关键包:
- Microsoft.AspNet.WebApi.Core
- Newtonsoft.Json
- Swashbuckle.AspNetCore (用于生成API文档)
提示:项目创建后第一件事就是设置.gitignore文件,避免把bin/obj等目录提交到版本库。这个坑我踩过不止一次。
3. 服务端实现
3.1 定义数据模型
我们先从最简单的学生模型开始。在API项目中创建Models文件夹,添加Student.cs:
csharp复制public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Major { get; set; }
// 入学时间
public DateTime EnrollmentDate { get; set; }
}
注意我特意加了EnrollmentDate字段,因为在实际项目中,时间类型的处理经常会出现问题。后面我们会专门讨论日期格式的序列化问题。
3.2 实现控制器
在Controllers文件夹中添加Student
