0

0

C# 如何创建一个 RESTful API_C# RESTful API 开发完整教程

煙雲

煙雲

发布时间:2025-11-14 17:22:02

|

251人浏览过

|

来源于php中文网

原创

使用asp.net core创建restful api:安装.net sdk后,通过dotnet new webapi命令创建项目,定义product模型和productscontroller实现crud操作,运行dotnet run启动服务,访问https://localhost:5001/swagger测试接口,可选集成entity framework core支持数据库,并通过dotnet publish部署应用。

c# 如何创建一个 restful api_c# restful api 开发完整教程

要使用 C# 创建一个 RESTful API,最常用的方式是通过 ASP.NET Core。它轻量、跨平台,并且非常适合构建现代 Web API。下面是一个完整的入门教程,带你从零开始创建一个简单的 RESTful API。

1. 准备开发环境

确保你已安装以下工具

  • .NET SDK(建议 6.0 或更高版本)
  • Visual Studio(2022 推荐)或 Visual Studio Code
  • 终端/命令行工具

你可以通过运行 dotnet --version 检查是否已安装 .NET SDK。

2. 创建 Web API 项目

打开终端,执行以下命令创建一个新的 Web API 项目:

dotnet new webapi -n MyRestApi
cd MyRestApi
dotnet run

项目创建完成后,默认会在 http://localhost:5000 启动服务,访问 https://localhost:5001/weatherforecast 可看到示例数据。

3. 理解项目结构

关键文件和目录说明:

  • Program.cs:应用入口,配置服务和中间件(.NET 6+ 使用隐式 using 和顶级语句)
  • Controllers 文件夹:存放控制器类,处理 HTTP 请求
  • appsettings.json配置文件,如数据库连接字符串
  • Properties/launchSettings.json:本地运行配置

4. 创建自己的数据模型

添加一个表示“产品”的类:

public class Product
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public decimal Price { get; set; }
}

将这个类保存在项目根目录下,命名为 Product.cs

5. 创建控制器处理请求

新建控制器 ProductsController.cs

using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
private static List _products = new List
{
new Product { Id = 1, Name = "键盘", Price = 299 },
new Product { Id = 2, Name = "鼠标", Price = 99 }
};

[HttpGet]
public IActionResult Get() => Ok(_products);

[HttpGet("{id}")]
public IActionResult Get(int id)
{
var product = _products.FirstOrDefault(p => p.Id == id);
return product == null ? NotFound() : Ok(product);
}

[HttpPost]
public IActionResult Post(Product product)
{
product.Id = _products.Max(p => p.Id) + 1;
_products.Add(product);
return CreatedAtAction(nameof(Get), new { id = product.Id }, product);
}

[HttpPut("{id}")]
public IActionResult Put(int id, Product updatedProduct)
{
var product = _products.FirstOrDefault(p => p.Id == id);
if (product == null) return NotFound();

product.Name = updatedProduct.Name;
product.Price = updatedProduct.Price;
return NoContent();
}

[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
var product = _products.FirstOrDefault(p => p.Id == id);
if (product == null) return NotFound();

_products.Remove(product);
return NoContent();
}
}

这个控制器实现了标准的 CRUD 操作:

CXF创建webservice服务端 中文WORD版
CXF创建webservice服务端 中文WORD版

本文档主要讲述的是CXF创建webservice服务端;Apache CXF是一个开源的 Services框架,CXF帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者 JBI,CXF 大大简化了 Services 的创建,同时它继承了 XFire 传统,一样可以天然地和 Spri

下载
  • GET /api/products → 获取所有产品
  • GET /api/products/1 → 获取特定产品
  • POST /api/products → 添加新产品
  • PUT /api/products/1 → 更新产品
  • DELETE /api/products/1 → 删除产品

6. 测试你的 API

启动服务:

dotnet run

使用工具测试 API:

  • 浏览器访问 https://localhost:5001/api/products
  • 使用 Postmancurl 发送 POST、PUT、DELETE 请求
  • VS Code 安装 Thunder Client 插件进行测试

7. 添加数据库支持(可选)

若需要持久化存储,可集成 Entity Framework Core:

dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools

然后定义 DbContext:

public class AppDbContext : DbContext
{
public DbSet Products { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer("Server=(localdb)\mssqllocaldb;Database=MyAppDb;Trusted_Connection=true;");
}

再在 Program.cs 中注册上下文:

builder.Services.AddDbContext();

8. 启用 Swagger 文档

ASP.NET Core 模板默认已集成 Swagger(也叫 OpenAPI)。运行项目后访问:

https://localhost:5001/swagger

你可以在浏览器中查看和测试所有 API 接口。

9. 部署 API

发布项目到生产环境:

dotnet publish -c Release -o ./publish

然后将 publish 文件夹部署到 IIS、Docker、Azure 或 Linux 服务器上。

基本上就这些。你现在拥有了一个功能完整的 C# RESTful API,支持标准 HTTP 方法、JSON 数据交换,并具备扩展能力。后续可以加入身份验证(JWT)、日志记录、异常处理、CORS 配置等高级功能。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
PHP API接口开发与RESTful实践
PHP API接口开发与RESTful实践

本专题聚焦 PHP在API接口开发中的应用,系统讲解 RESTful 架构设计原则、路由处理、请求参数解析、JSON数据返回、身份验证(Token/JWT)、跨域处理以及接口调试与异常处理。通过实战案例(如用户管理系统、商品信息接口服务),帮助开发者掌握 PHP构建高效、可维护的RESTful API服务能力。

179

2025.11.26

什么是中间件
什么是中间件

中间件是一种软件组件,充当不兼容组件之间的桥梁,提供额外服务,例如集成异构系统、提供常用服务、提高应用程序性能,以及简化应用程序开发。想了解更多中间件的相关内容,可以阅读本专题下面的文章。

182

2024.05.11

Golang 中间件开发与微服务架构
Golang 中间件开发与微服务架构

本专题系统讲解 Golang 在微服务架构中的中间件开发,包括日志处理、限流与熔断、认证与授权、服务监控、API 网关设计等常见中间件功能的实现。通过实战项目,帮助开发者理解如何使用 Go 编写高效、可扩展的中间件组件,并在微服务环境中进行灵活部署与管理。

226

2025.12.18

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

455

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

546

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

334

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

82

2025.09.10

软件测试常用工具
软件测试常用工具

软件测试常用工具有Selenium、JUnit、Appium、JMeter、LoadRunner、Postman、TestNG、LoadUI、SoapUI、Cucumber和Robot Framework等等。测试人员可以根据具体的测试需求和技术栈选择适合的工具,提高测试效率和准确性 。

463

2023.10.13

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 11.1万人学习

C 教程
C 教程

共75课时 | 5.3万人学习

C++教程
C++教程

共115课时 | 21.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号