C#的ASP.NET Core Web API是什么?如何构建RESTful服务?

畫卷琴夢
发布: 2025-11-16 12:45:06
原创
273人浏览过
ASP.NET Core Web API 是基于 .NET 的高性能跨平台框架,用于构建 RESTful 服务,支持标准 HTTP 动词操作资源;通过 CLI 命令可快速创建项目,自动生成示例控制器;定义 ProductsController 实现 CRUD 操作,配合 Product 模型管理数据;集成 Swagger(Swashbuckle)提供可视化文档与测试界面;建议使用 ApiResponse 统一返回格式,提升接口规范性;后续可扩展数据库、认证、日志等机制。

c#的asp.net core web api是什么?如何构建restful服务?

C# 的 ASP.NET Core Web API 是一个用于构建高性能、跨平台 HTTP 服务的框架,特别适合创建 RESTful 风格的 Web API。它运行在 .NET 平台之上,支持 Windows、Linux 和 macOS,适用于微服务、前后端分离架构以及移动端后端等场景。

RESTful 服务基于 HTTP 协议,使用标准动词(如 GET、POST、PUT、DELETE)对资源进行操作。ASP.NET Core 提供了简洁的路由、模型绑定、序列化和中间件机制,让构建 RESTful API 变得高效且直观。

创建 ASP.NET Core Web API 项目

使用 .NET CLI 或 Visual Studio 都可以快速创建 Web API 项目。

  • 打开终端,执行命令创建新项目:
    dotnet new webapi -n MyApi
  • 进入项目目录:
    cd MyApi
  • 运行项目:
    dotnet run

默认会生成一个 Controllers/WeatherForecastController.cs 示例控制器,可通过 /weatherforecast 路由访问 JSON 数据。

定义 RESTful 控制器和路由

新建一个控制器来管理资源,比如“产品”(Product)。右键添加新类:

[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
    private static List<Product> _products = new()
    {
        new Product { Id = 1, Name = "笔记本电脑", Price = 5999 },
        new Product { Id = 2, Name = "鼠标", Price = 99 }
    };
<pre class="brush:php;toolbar:false;"><pre class="brush:php;toolbar:false;">[HttpGet]
public IActionResult Get() => Ok(_products);

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

[HttpPost]
public IActionResult Post([FromBody] 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, [FromBody] Product updatedProduct)
{
    var product = _products.FirstOrDefault(p => p.Id == id);
    if (product is 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 is null) return NotFound();

    _products.Remove(product);
    return NoContent();
}
登录后复制

}

再定义 Product 模型:

即构数智人
即构数智人

即构数智人是由即构科技推出的AI虚拟数字人视频创作平台,支持数字人形象定制、短视频创作、数字人直播等。

即构数智人 36
查看详情 即构数智人
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; } = string.Empty;
    public decimal Price { get; set; }
}
登录后复制

启用 Swagger 文档(API 测试与展示)

Swagger(通过 OpenAPI)能自动生成 API 文档并提供测试界面。

  • 安装 Swashbuckle 包:
    dotnet add package Swashbuckle.AspNetCore
  • Program.cs 中添加服务和中间件:
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
<p>// ... 其他配置</p><p>if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
登录后复制

启动项目后访问 /swagger,即可看到可视化 API 文档。

处理错误与返回标准格式

建议统一响应结构,例如:

public class ApiResponse<T>
{
    public bool Success { get; set; }
    public T? Data { get; set; }
    public string? Message { get; set; }
}
登录后复制

在控制器中使用:

[HttpGet]
public IActionResult Get()
{
    return Ok(new ApiResponse<List<Product>>
    {
        Success = true,
        Data = _products
    });
}
登录后复制

基本上就这些。你现在已经掌握了用 C# 和 ASP.NET Core 构建 RESTful Web API 的核心流程:创建项目、定义模型、编写控制器、配置路由与文档,并返回结构化数据。后续可扩展数据库(如 Entity Framework Core)、身份认证(JWT)、日志、验证等功能。

以上就是C#的ASP.NET Core Web API是什么?如何构建RESTful服务?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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