当前位置: 首页 > news >正文

C# 与低代码平台的融合:以活字格为例的 Web API 开发实践

引言

在当今软件开发领域,低代码平台凭借其高效、便捷的特性逐渐成为开发的主流趋势。而 C# 作为一种功能强大的编程语言,在服务端开发中有着广泛的应用。将 C# 与低代码平台相结合,能够充分发挥两者的优势,快速开发出高质量的应用程序。本文将以葡萄城公司的企业级低代码平台 —— 活字格为例,详细介绍如何使用 C# 进行接口扩展,创建服务端 Web API。

正文

C# Web API 概述

C# Web API 是基于 .NET 平台(包括 .NET Framework 和 .NET Core)构建 HTTP 服务的框架,用于创建 RESTful Web 服务。REST 是一种软件架构风格,利用 HTTP 协议的特性(如 GET、POST、PUT、DELETE 等方法)来操作资源。在 C# 中,ASP.NET Web API 提供了模式和工具集,使开发者能方便地设计和实现对外暴露的 API 接口,供各种客户端应用程序(如 Web 浏览器、移动应用、桌面应用或其他服务器端应用)通过 HTTP 请求调用,以获取或修改数据。

使用 ASP.NET Web API 具有诸多特点和优势:

  1. 模块化与分离关注点:控制器负责处理 HTTP 请求,模型代表业务对象,视图模型可适配不同客户端的数据需求,路由机制将 URL 映射到特定操作。
  2. RESTful 架构支持:鼓励遵循 REST 设计原则,提供资源导向的服务,允许客户端通过标准 HTTP 方法访问资源。
  3. 跨平台兼容性:在 .NET Core 上,Web API 可运行于 Windows、Linux 和 macOS 等多种操作系统。
  4. 内容协商与格式化器:自动处理不同客户端要求的数据格式,如 JSON、XML 或其他自定义格式。
  5. 安全性与认证授权:内置对 OAuth、JWT 等多种安全策略的支持,实施灵活且安全的 API 访问控制。
  6. 测试友好:基于 HTTP,容易进行单元测试和集成测试,可配合 Postman、Swagger 等工具进行接口文档生成和测试。
  7. 扩展性:具有高度可扩展性,可通过中间件、过滤器等增强功能,适应复杂的企业级应用需求。

活字格中使用 C# 创建服务端 Web API 的步骤

环境准备
  • 编译器:可选择 Visual Studio、Visual Studio Code、IntelliJ IDEA Rider 等。
  • 依赖环境:系统需安装 Dot Net 6.0 运行环境。
  • 使用语言:C# 或 VB.Net。
  • 其他:具备 C# 基础知识及编程能力。
创建服务端 Web API
  1. 创建类库项目:打开编译器(以 IntelliJ IDEA Rider 为例),选择 Class Library (类库),Framework 选择 net6.0,点击 “Create” 创建类库项目。
  2. 添加活字格类库引用:在新建项目中选择 “Dependencies”,右键选择 “Reference” 添加引用,从活字格的安装路径下引用 “GrapeCity.Forguncy.ServerApi.dll” 文件。若安装目录为默认目录,文件路径为 “C:\Program Files\ForguncyServer\Website\bin”;若为自定义路径,则为 “自定义路径 \ForguncyServer\Website\bin”。
  3. 编辑 csproj 文件:右键项目,选择 “Edit”——“Edit xxx.csproj”,在打开的文件中添加如下代码并保存:

xml

<ItemGroup><FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
编写服务端 Web API

为接收标准化 JSON 数据,示例代码如下:

csharp

using System.Text;
using System.Text.Json;
using GrapeCity.Forguncy.ServerApi;namespace MyApiTest;public class RequestBodyHandler : ForguncyApi
{[Post]public async Task ReceiveApiRequest(){var request = Context.Request;var serverCommandName = request.Query["serverCommandName"]; // 从 URL 中取参数if (request.ContentType != null && request.ContentType.Equals("application/json")){var sr = new StreamReader(request.Body);string content = await sr.ReadToEndAsync();var obj = new { data = content };string newContent = JsonSerializer.Serialize(obj).Replace("/r/n", "");using HttpClient httpClient = new HttpClient();var baseAddress = $"{request.Scheme}://{request.Host}{request.PathBase}/ServerCommand/{serverCommandName}";HttpContent httpContent = new StringContent(newContent, Encoding.UTF8, "application/json");HttpResponseMessage responseMessage = await httpClient.PostAsync(baseAddress, httpContent);if (responseMessage.IsSuccessStatusCode){await responseMessage.Content.ReadAsStringAsync();}else{throw new Exception($"Error: {responseMessage.StatusCode}");}}else{throw new HttpRequestException("ContentType error, please check request content!");}}
}

编写完成后,右键项目点击 “Build Selected Projects” 进行项目 Build 打包。在新建类库项目的目录下找到生成的 dll 文件,打开活字格设计器,上传该 dll 文件到活字格工程中,此时 API 列表会显示 Web API 的请求地址。

活字格中使用 Web API

回到活字格设计器工程,新建一个服务端命令,命名为 “RedirectCommand”,设置参数值为 “data”,用返回命令将接收的数据保存到表里,注意服务端命令需设置为任何人可调用。借助 API 调试工具向创建的 Web API 发送请求,运行本地服务,使用 localhost 进行测试。发送请求后,活字格会将产生的数据接收到并保存到数据表中。

调试服务端 Web API
  1. 运行上传了打包完成的 Web API dll 文件的活字格工程。
  2. 在编译器中选择 “Run”——“Attach to Process” 附加到进程,搜索活字格本地服务的端口号,点击附加。
  3. 在代码左侧打断点,触发 Web API 调用后即可进行调试。
修改代码后再次调试

若修改代码,需执行以下步骤:

  1. 修改代码。
  2. 编译工程。
  3. 在活字格设计器中删除之前的 dll 文件。
  4. 上传新的 dll 文件。
  5. 运行活字格应用程序。
  6. 通过编译器的 “调试 -> 附加到进程” 重新附加到 ForguncyServerConsole.exe 进程上。
  7. 打断点调试。
  8. 若还需修改代码,回到第一步,直至修正所有问题。

C# 与低代码平台结合的优势

将 C# 与低代码平台(如活字格)结合,能够充分发挥两者的优势。低代码平台提供了可视化界面和拖拽功能,减少了手动编码的工作量,提高了开发效率。而 C# 作为一种强大的编程语言,为开发者提供了更多的灵活性和扩展性。通过使用 C# 进行接口扩展,开发者可以实现复杂的业务逻辑和功能,满足不同项目的需求。同时,C# Web API 的安全性、跨平台兼容性等特点,也为应用程序的开发和部署提供了保障。

结论

本文详细介绍了如何使用 C# 在活字格低代码平台上创建服务端 Web API。通过结合 C# 的强大功能和活字格低代码平台的高效性,开发者可以快速开发出高质量的应用程序。从环境准备、项目创建、代码编写到调试和修改,每个步骤都进行了详细的阐述。这种将 C# 与低代码平台相结合的开发方式,不仅提高了开发效率,还能充分满足不同业务场景的需求。希望本文能为开发者在使用 C# 进行低代码开发时提供有益的参考,帮助他们更好地利用这两种技术,开发出优秀的应用程序。完整的代码工程文件可参考:https://gitee.com/GrapeCity/my-api-test 。

活字格企业级低代码开发平台

http://www.xdnf.cn/news/981739.html

相关文章:

  • 布尔字段命名陷阱:避免序列化错误的关键
  • pytorch 中前向传播和后向传播的自定义函数
  • vscode界面设置透明度--插件Glasslt-VSC
  • 【DETR目标检测】ISTD-DETR:一种基于DETR与超分辨率技术的红外小目标检测深度学习算法
  • 《HarmonyOSNext弹窗:ComponentContent动态玩转企业级弹窗》
  • 新闻类鸿蒙应用全链路测试实践:性能、兼容性与体验的深度优化
  • React Context 性能问题及解决方案深度解析
  • 【普及/提高−】P1025 ——[NOIP 2001 提高组] 数的划分
  • Cilium动手实验室: 精通之旅---23.Advanced Gateway API Use Cases
  • codeforces C. Devyatkino
  • Java并发工具包
  • 【59 Pandas+Pyecharts | 淘宝华为手机商品数据分析可视化】
  • 深度解读谷歌Brain++液态神经网络:重塑动态智能的流体计算革命
  • Gogs:一款极易搭建的自助 Git 服务
  • [Java恶补day22] 240. 搜索二维矩阵Ⅱ
  • React第六十节 Router中createHashRouter的具体使用详解及案例分析
  • android studio向左向右滑动页面
  • Babylon.js引擎
  • MMDG++:构筑多模态人脸防伪新防线,攻克伪造攻击与场景漂移挑战
  • java面向对象高级部分
  • 大数据服务器和普通服务器之间的区别
  • LDStega论文阅读笔记
  • 【基于阿里云上Ubantu系统部署配置docker】
  • RawTherapee:专业RAW图像处理,免费开源
  • 【AI智能体】Coze 数据库从使用到实战操作详解
  • Docker Compose完整教程
  • day51python打卡
  • AI时代的行业重构:机遇、挑战与生存法则
  • Spring Boot + MyBatis日志前缀清除方法
  • Grounding Language Model with Chunking‑Free In‑Context Retrieval (CFIC)