news 2026/5/25 18:54:55

基于.net6的一款开源的低代码、权限、工作流、动态接口平台-动态接口篇

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于.net6的一款开源的低代码、权限、工作流、动态接口平台-动态接口篇

概述

动态接口允许用户在运行时创建和修改API端点,而无需重新部署应用程序。这对于需要频繁更改API结构的应用程序特别有用。

通过动态接口,开发人员可以根据业务需求快速调整API,提升开发效率和响应速度。

功能特点

动态创建和修改API端点:用户可以在运行时添加、更新或删除API端点。

支持JSON数据格式:动态接口支持JSON数据交换格式。

配置说明

新增一个动态脚本

在管理后台导航到“接口管理”-“脚本管理”模块。

点击左侧文件树上方的菜单“+”按钮,新增一个动态脚本文件。

修改脚本名称和内容。

点击运行按钮,测试脚本是否正常。

保存脚本。

例如

using System;

using System.Threading.Tasks;

using Newtonsoft.Json;

using System;

using JESAI.Core.Aspects;

using JESAI.Platform.Domain.Admin.Repositories;

using Jesai.DynamicDataSource.Sqlsugar.DynamicDatasources;

public class Program

{

public string Handle(string param){

//查询数据库

var provider = ServiceLocator.Instance.GetService<IDbProvider>();

var db=provider.GetConnection("Test").Result;

var data=db.Ado.SqlQuery<dynamic>("select * from mlt_sys_dynamic_datasource");

// 创建包含多个匿名对象的数组

var tableData = new[]

{

new { Id = 1, TableName = "用户表", TableCode = "user", TableDesc = "用户信息表", IsValid = 1, CreateTime = "2023-10-01 12:00:00" },

new { Id = 2, TableName = "订单表", TableCode = "order", TableDesc = "订单信息表", IsValid = 1, CreateTime = "2023-10-02 12:00:00" },

new { Id = 3, TableName = "产品表", TableCode = "product", TableDesc = "产品信息表", IsValid = 0, CreateTime = "2023-10-03 12:00:00" }

};

var result=new {ErrorCode="000000",Message="操作成功!",CurrentPage=1,Total=3,Data=new {tableData=tableData,DBData=data}};

var str=JsonConvert.SerializeObject(result);

return str;

}

public static async Task Main()

{

var p= new Program();

var result=p.Handle(null);

Console.WriteLine(result);

}

}

注意:接口的入口方法必须是public string Handle(string param),其中param是JSON格式的字符串,返回值也是JSON格式的字符串。可以自己修改为动态的方法名。

如图所示,新增一个动态脚本。

微信图片_2025-11-24_101504_700

运行测试,如图所示,输出结果正常。

微信图片_2025-11-24_103039_727

2. 通过动态脚本创建API端点

- 在管理后台导航到“接口管理”-“接口定义”模块。

- 点击“新增”按钮,新增一个接口定义。

- 填写接口名称、路径、方法、脚本名称等信息。

- 点击“保存”按钮,保存接口定义。

如图所示,打开接口定义模块。

微信图片_2025-11-24_104529_387

如图所示,新增一个接口定义。

微信图片_2025-11-24_105204_858

测试调用

打开swagger,查看一下调用接口。

微信图片_2025-11-24_105513_546

使用JWT认证调用接口

Postman测试调用接口,传入参数,查看返回结果。

微信图片_2025-11-24_111346_110

使用API密钥授权‌或‌签名认证授权‌调用接口

先从系统查询AppID和AppSecret。(直接从数据库查询,管理模块暂时还没做)

微信图片_2025-11-28_134918_788

计算签名Token,计算方法如下:

取当前系统时间戳,使用AppSecret对齐进行加密,得到Token。

例如:当前时间戳为1699424000000,AppSecret为TWM8uRwhTNzOCU7PDXAN47fewMMnF9GP,使用Aes加密,得到Token为:

+74ZCFZHXe3z0in4RomdqA==

long currentTimeStamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

var token= AesEncryptor.Instance.Encrypt(currentTimeStamp.ToString(), "TWM8uRwhTNzOCU7PDXAN47fewMMnF9GP");

Console.WriteLine(token);

调用接口时,在请求头或者参数中添加AppKey和Token。

微信图片_2025-11-28_141235_180

微信图片_2025-11-28_141258_105

注意:

- 前端调用,一般使用JWT,通过${baseUrl}/api/v1/UniformPlatform/Get/TestDynamicApi?param=1 调用。需要在请求头中添加Authorization,值为Bearer

j

w

t

T

o

k

e

n

<

/

s

p

a

n

>

<

s

p

a

n

s

t

y

l

e

="

c

o

l

o

r

:

r

e

d

;

f

o

n

t

w

e

i

g

h

t

:

b

o

l

d

;

">

A

P

I

{baseUrl}/api/v1/UniformApp/Get/TestDynamicApi?param=1 调用。需要在请求头中添加AppKey,Token。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 5:24:01

Instinct智能代码编辑模型:开启编程效率新时代

Instinct智能代码编辑模型&#xff1a;开启编程效率新时代 【免费下载链接】instinct 项目地址: https://ai.gitcode.com/hf_mirrors/continuedev/instinct 在当今快节奏的软件开发环境中&#xff0c;如何保持高效的编码状态成为每个开发者面临的挑战。Continue团队最新…

作者头像 李华
网站建设 2026/5/26 2:13:17

3步掌握KasmVNC:浏览器远程桌面访问的终极方案

3步掌握KasmVNC&#xff1a;浏览器远程桌面访问的终极方案 【免费下载链接】KasmVNC Modern VNC Server and client, web based and secure 项目地址: https://gitcode.com/gh_mirrors/ka/KasmVNC 还在为传统远程桌面软件的复杂安装而头疼吗&#xff1f;KasmVNC这款现代…

作者头像 李华
网站建设 2026/5/25 18:52:30

OpenUSD工具链完整指南:从基础概念到高级应用

OpenUSD工具链完整指南&#xff1a;从基础概念到高级应用 【免费下载链接】OpenUSD Universal Scene Description 项目地址: https://gitcode.com/GitHub_Trending/ope/OpenUSD Universal Scene Description&#xff08;OpenUSD&#xff09;作为Pixar开发的开源3D场景描…

作者头像 李华
网站建设 2026/5/26 3:02:00

超颖表面构建模块

超透镜和超颖表面因其操纵电磁场的独特特性而在科学上声名鹊起。由于最近纳米制造技术的进步&#xff0c;其加工制造也变得可行。超颖表面设计的一个关键步骤是找到组成表面的适当的构建模块。利用VirtualLab Fusion中的傅里叶模态方法(FMM&#xff0c;也称为RCWA)&#xff0c;…

作者头像 李华
网站建设 2026/5/25 9:15:39

watermark.js实战指南:浏览器端图片水印的完整解决方案

watermark.js实战指南&#xff1a;浏览器端图片水印的完整解决方案 【免费下载链接】watermarkjs :rice_scene: Watermarking for the browser 项目地址: https://gitcode.com/gh_mirrors/wa/watermarkjs 在数字内容创作日益普及的今天&#xff0c;图片版权保护已成为每…

作者头像 李华
网站建设 2026/5/24 2:35:35

人工智能:用Gemini3一分钟生成手势控制3D粒子交互系统

mini3横空出世&#xff0c;网上对其的评价颇为一致&#xff0c;都认为其是近期以来的最佳大模型&#xff0c;并且很多博主通过Gemini3很快的做出了很有意思的一些应用&#xff0c;其中最有代表性的就是手势控制3D粒子交互系统&#xff0c;上一篇博客我们详细讲解了如何进入Gemi…

作者头像 李华