7.1K Star 12.7K Fork 4.1K

GVPdotNET China/Furion

 / 详情

Furion 如何使用Knife4!

已完成
创建于  
2022-08-02 09:04

💢 特别说明:如果 Issue 没有严格按照模板编写且未提供测试源码下载或 Git 测试仓库地址,则视为无效 Issue

Furion 版本号

哪个版本号?
最新版本
WebApi、


Web 项目类型

  • WebApi
  • Mvc
  • Razor Pages
  • Blazor Server
  • MinApp

描述你的问题

Furion 如何使用Knife4!


异常堆栈信息

异常堆栈是什么?


测试项目代码

⚠⚠ 必须提供完整可运行且包含错误的 Git 仓库 DEMO,DEMO 提供最简单的错误逻辑代码,否则不予处理。⚠⚠

您的代码下载地址?


数据库信息

  • Sqlite
  • SqlServer
  • Mysql
  • Oracle
  • PGSql
  • Firebird
  • Cosmos

期待结果

期待的结果是?


评论 (8)

缘For缘 创建了任务

https://dotnetchina.gitee.io/furion/docs/upgrade

仔细看 4.1.6 更新日志【本期亮点-第三点】

百小僧 任务状态待办的 修改为已完成

输入图片说明

Knife4! 里面不能显示出接口的路由地址。
Swagger 里面是正常显示!

首先,集成 Knife4J 是完全没问题的,但是下次发 Issue 麻烦贴出你的 Startup.cs 代码,或者提供 Demo,因为绝大概率是因为您的不正确配置导致。

百小僧 任务状态已完成 修改为进行中
百小僧 任务状态进行中 修改为待办的

using AMWAPI;
using Furion;
using AMWServer.Common;
using AMWAPI.Middleware;
using AMWAPI.Filter;
using Microsoft.Extensions.FileProviders;
using FurionApi.Web.Core;
using IGeekFan.AspNetCore.Knife4jUI;
using Furion.SpecificationDocument;

var builder = WebApplication.CreateBuilder(args).Inject();

builder.Services.AddSqlsugarSetup(App.Configuration);
//ApplicationConfig.Configuration = App.Configuration;
// Add services to the container.
//Furion 注入
//跨域处理
builder.Services.AddCorsAccessor();
builder.Services.AddControllers().AddInject();

//builder.Services.AddControllers();
// 默认授权机制,需授权的即可(方法)需贴 [Authorize] 特性
builder.Services.AddJwt(enableGlobalAuthorize:true);

builder.Services.AddControllers(options =>
{
//结果包装
options.Filters.Add();
//全局异常处理
options.Filters.Add();
});

//builder.WebHost.UseUrls(new[] { $"http://:{6000}" });
//builder.Logging.AddLog4Net("log4Net.config");
//builder.WebHost.UseUrls("http://
:5000");
var app = builder.Build();

// Configure the HTTP request pipeline.
app.UseHttpsRedirection();

//(鉴权)身份认证,明确是你谁,确认是不是合法用户。常用的认证方式有用户名密码认证。
//使用跨域
app.UseCorsAccessor();

app.UseAuthentication();

app.UseAuthorization();
app.UseStaticFiles().UseStaticFiles(new StaticFileOptions
{
ServeUnknownFileTypes = true
});
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), @"Public")),
//配置访问虚拟目录时文件夹别名
RequestPath = "/Public",
OnPrepareResponse = (Microsoft.AspNetCore.StaticFiles.StaticFileResponseContext staticFile) =>
{
//可以在此处读取请求的信息进行权限认证
// staticFile.File
// staticFile.Context.Response.StatusCode;
}
});
//app.UseSwagger();
var routePrefix = "api";
app.UseKnife4UI(options =>
{
options.RoutePrefix = routePrefix; // 配置 Knife4UI 路由地址
foreach (var groupInfo in SpecificationDocumentBuilder.GetOpenApiGroups())
{
options.SwaggerEndpoint("/" + groupInfo.RouteTemplate, groupInfo.Title);
}
});
//Furion 注入
app.UseInject("api");
app.MapControllers();
app.UseConditionalConvert();
//把数据库 日志 缓存 统一
//等待touchSocketServer运行
await TouchSocketServer.Run();
//启动Socket 监听
app.Run();

输入图片说明

采用的动态控制器。但是继承了一个基类!

虽不是 Furion 的问题,见文档:输入图片说明

Furion 新版本就默认处理了。处理代码:87a4c33


中午之前发布最新版本,升级即可,另外新增了 [OperationId] 特性可自定义。

v4.1.7 版本已发布

百小僧 任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
974299 monksoul 1578937227
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

搜索帮助