前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MiniAPI简化.NET开发

MiniAPI简化.NET开发

作者头像
软件架构师Michael
发布2024-07-03 09:42:25
1120
发布2024-07-03 09:42:25

在.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
复制
```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 class SysUserController : ControllerBase
{
    // 登录和Token检测方法...
}
```

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

代码语言:csharp
复制
```csharp
[ApiController]
[Route("api/[controller]")]
public class SysUserController : ControllerBase
{
    // 登录和Token检测方法...
}
```

这种开发方式适用于大多数中小公司项目,它直观、简洁,易于管理和扩展。对于新手而言,这种结构清晰的项目框架也更易于学习和理解。

随着.NET生态的不断丰富,开发者应该避免重复造轮子,利用现有的开源资源和库。记住,技术应该服务于业务,而不是为了技术本身。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列
腾讯云消息队列 TDMQ 是分布式架构中的重要组件,提供异步通信的基础能力,通过应用解耦降低系统复杂度,提升系统可用性和可扩展性。TDMQ 产品系列提供丰富的产品形态,包含 CKafka、RocketMQ、RabbitMQ、Pulsar、CMQ 五大产品,覆盖在线和离线场景,满足金融、互联网、教育、物流、能源等不同行业和场景的需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档