.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`中,我们通过以下代码块,快速配置服务和中间件:
```csharp
var 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生态的不断丰富,开发者应该避免重复造轮子,利用现有的开源资源和库。记住,技术应该服务于业务,而不是为了技术本身。