Minimal API是.Net 6中新增的模板,借助C# 10的一些特性以最少的代码运行一个Web服务。本文使用VB.NET ,完成一个简单的Minimal Api项目的开发。(估计是全网首发吧),找遍了百度,必应,Github都没找到VB.NET版本的Minimal Api项目,找到的都是C#的项目,毕竟专为C#10而生!!!
那么我们为什么要用这玩意呢?首先,我们平时开发的项目,都是使用有限的几个接口,但是又不想用ASP.NET WebAPI这么冗余!那么我们就会找一下简单高性能的Webapi代替,刚好.NET6给了.NET开发者一个期望,可惜在VS项目里,并没有找到VB相关的模板,VB被抛弃的孩子!其次,当然也是想体验一下.NET6的新特性!!!
先来张效果图:
因本人不会使用C#,所有鼓捣了挺久的,特作一个小记录!!!!
新建一个控制台应用,然后添加以下组成部分即可,就这么简单
结果自己鼓捣了大半天
项目的部分组成部分:
①Microsoft.AspNetCore.App 框架
②appsettings.json配置文件
③Program.vb
文件夹组成:
①主要就是My Project里面的launchSettings.json配置文件
②其他文件夹都是自动生成
代码部分主要就是:Program.vb文件,主启动文件
代码语言:javascript复制Imports Microsoft.AspNetCore.Builder
Imports Microsoft.Extensions.DependencyInjection
Imports Microsoft.Extensions.Hosting
Imports System.Runtime.CompilerServices
Imports System
Imports Microsoft.AspNetCore.Http
Module Program
''' <summary>
''' Web应用程序容器
''' </summary>
Public builder As WebApplicationBuilder
''' <summary>
''' Web应用程序
''' </summary>
Public app As WebApplication
''' <summary>
''' 应用入口
''' </summary>
''' <param name="args"></param>
Sub Main(args As String())
' 创建容器
builder = WebApplication.CreateBuilder(args)
' ====================================
' -------- 这里是配置Swagger文档 -----
' 将服务添加到容器中
' 了解有关配置Swagger的更多信息/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer()
builder.Services.AddSwaggerGen(Sub(options)
'服务条款
options.SwaggerDoc("v1", New Microsoft.OpenApi.Models.OpenApiInfo With {
.Title = "VB.NET迷你WebAPI测试模板",
.Version = "1.0.0.0",
.Description = "本模板由OuHuanHua创建,公众号:VB小源码",
.Contact = New Microsoft.OpenApi.Models.OpenApiContact With {
.Name = "OuHuanHua",
.Email = "463550067@qq.com",
.Url = New Uri("https://vbee.life")
}
})
End Sub)
' 创建web应用
app = builder.Build()
' 配置HTTP请求环境 开发环境
If app.Environment.IsDevelopment() Then
app.UseSwagger()
app.UseSwaggerUI(Sub(options)
options.DocumentTitle = "VB.NET迷你WebAPI测试_开发环境"
End Sub)
End If
' 配置HTTP请求环境 测试环境
If app.Environment.IsProduction() Then
app.UseSwagger()
app.UseSwaggerUI(Sub(options)
options.DocumentTitle = "VB.NET迷你WebAPI测试_生产环境"
End Sub)
' 多端口监听
app.Urls.Add("http://localhost:8888")
'app.Urls.Add("http:// :8888")
End If
' ====================================
' -------- 这里开始才是正式的MinAPI---
' 在web应用下创建一个测试的WebAPI
' GET请求测试
app.MapGet("/Test", Function()
Return New TestType
End Function).WithName("GetTest")
' POST请求测试
app.MapPost("/TestPost", Function(req As UserInfoType)
Return $"用户名:{req.username} 用户密码:{req.password}"
End Function).WithName("PostTestPost")
' 带参数GET请求测试
app.MapGet("/TestPram", Function(username As String, password As String)
Return $"用户名:{username} 用户密码:{password}"
End Function).WithName("GetTestPram")
' 主GET请求测试
app.MapGet("", Sub(htp As HttpContext)
htp.Response.StatusCode = 200
htp.Response.Redirect("http://localhost:8888/swagger")
End Sub).WithName("GetHome")
' 自定义扩展WebApi接口(方便独立写方法)
app.ExtApiTest()
' 启动WebAPI应用
app.Run()
End Sub
''' <summary>
''' 创建一个测试类型
''' </summary>
Public Class TestType
Public Property ApiName As String = "VB.NET迷你WebAPI测试"
Public Property ApiAuthor As String = "微信公众号:VB小源码"
Public Property ApiTime As String = Now
End Class
''' <summary>
''' 参数模型
''' </summary>
Public Class UserInfoType
Public Property username As String
Public Property password As String
End Class
End Module
自定义的扩展模块: ModelWebAPIExt.vb只是为了简化代码
代码语言:javascript复制Imports System.Runtime.CompilerServices
Imports Microsoft.AspNetCore.Builder
''' <summary>
''' WebAPI独立接口模型方法
''' </summary>
Public Module ModelWebAPIExt
''' <summary>
''' WebApi扩展接口测试
''' </summary>
''' <param name="app"></param>
<Extension()> Public Sub ExtApiTest(app As WebApplication)
app.MapGet("/TestExt", Function()
Return "扩展接口测试"
End Function).WithName("GetTestExt")
End Sub
End Module
好了就这么多墨水了!!!!!!
以上代码看着挺多的实际可以精简Program.vb文件到以下几句代码,其他都可以不要
代码语言:javascript复制Imports Microsoft.AspNetCore.Builder
Imports Microsoft.Extensions.Hosting
Module Program
''' <summary>
''' Web应用程序容器
''' </summary>
Public builder As WebApplicationBuilder
''' <summary>
''' Web应用程序
''' </summary>
Public app As WebApplication
''' <summary>
''' 应用入口
''' </summary>
''' <param name="args"></param>
Sub Main(args As String())
builder = WebApplication.CreateBuilder(args)
' 创建web应用
app = builder.Build()
If app.Environment.IsProduction() Then
' 多端口监听
app.Urls.Add("http://localhost:8888")
End If
' -------- 这里开始才是正式的MinAPI---
' GET请求测试
app.MapGet("/Test", Function()
Return "Minimal Api 测试"
End Function).WithName("GetTest")
' 自定义扩展WebApi接口(方便独立写方法)
app.ExtApiTest()
' 启动WebAPI应用
app.Run()
End Sub
End Module
好了今天的内容就这么多了!!!!!!!!
实列项目下载:
代码语言:javascript复制链接:https://pan.baidu.com/s/1ojoFOk_JXigbC58rVPZxZw
提取码:vbee
--来自百度网盘超级会员V5的分享