当前位置: 欣欣网 > 码农

简化.NET开发,拥抱清爽的MiniAPI方法

2024-06-27码农

.NET开发的世界中,项目模板和开源解决方案往往显得复杂和臃肿。本文将介绍一种利用.NET 6的MiniAPI特性,以一种更清爽、更直观的方式开发API的方法。

.NET开发社区一直在寻求更高效、更简洁的开发实践。随着.NET 6的发布,MiniAPI特性为简化API开发提供了新的可能性。
官方提供的MiniAPI快速参考文档,为开发者提供了一个轻量级的起点。然而,本文将探讨一种更为直接的野路子方法,它基于控制台应用程序改造,以适应国内开发环境。
在模拟一个普通企业官网API的场景中,我们的需求包括:
- 数据库操作
- 授权鉴权
- Swagger文档生成
- 文件上传支持

针对这些需求,我们选择了以下核心组件:
Swashbuckle.AspNetCore :为API生成Swagger文档。
SqlSugarCore :一个ORM工具,简化数据库操作。
Microsoft.AspNetCore.Authentication.JwtBearer :简化JWT授权鉴权。
Mapster :简化DTO和Entity之间的转换。
在项目文件中,将`<Project Sdk="Microsoft.NET.Sdk">`更改为`<Project Sdk="Microsoft.NET.Sdk.Web">`,以启用Web项目特有的配置。

在`Program.cs`中,我们通过以下代码块,快速配置服务和中间件:


```csharpvar builder = WebApplication.CreateBuilder(args);// 基本设置builder.Services.AddControllers();builder.Services.Configure<FormOptions>(options =>{ options.MultipartBodyLengthLimit = 268435456; // 设置上传大小限制为256MB});// 授权鉴权配置builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(tokenValidationParameters => {// JWT配置... });// Swagger配置builder.Services.AddEndpointsApiExplorer();builder.Services.AddSwaggerGen(c =>{ c.SwaggerDoc("v1", new OpenApiInfo { Title = "企业官网Api", Version = "v1" });// Swagger配置...});var app = builder.Build();// 使用SwaggerUI等中间件...app.Run();```


在API文件夹中,创建控制器类,例如`SysUserController`,实现具体的业务逻辑:

```csharp[ApiController][Route("api/[controller]")]public classSysUserController : ControllerBase{// 登录和Token检测方法...}```


这种开发方式适用于大多数中小公司项目,它直观、简洁,易于管理和扩展。对于新手而言,这种结构清晰的项目框架也更易于学习和理解。
随着.NET生态的不断丰富,开发者应该避免重复造轮子,利用现有的开源资源和库。记住,技术应该服务于业务,而不是为了技术本身。