.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生態的不斷豐富,開發者應該避免重復造輪子,利用現有的開源資源和庫。記住,技術應該服務於業務,而不是為了技術本身。