首页 > 其他分享 >mormot2路由

mormot2路由

时间:2024-07-17 17:40:47浏览次数:10  
标签:function HTTP SUCCESS TAPIController Cardinal mormot2 THttpServerRequestAbstract

mormot2路由

unit mvc.Controller.Api;

interface

uses
  system.SysUtils,
  system.StrUtils,
  system.Classes,
  mormot.core.base,
  mormot.core.os,
  mormot.core.rtti,
  mormot.core.log,
  mormot.core.text,
  mormot.net.sock,
  mormot.net.http,
  mormot.net.server,
  mormot.net.async,
  mormot.core.datetime,
  system.Rtti,
  system.NetEncoding;

type
  TAPIController = record
    function SayHello(c: THttpServerRequestAbstract): cardinal;
    function Default(c: THttpServerRequestAbstract): cardinal;
    function MD5(c: THttpServerRequestAbstract): Cardinal;
    function Base64Encode(c: THttpServerRequestAbstract): Cardinal;
    function Base64Decode(c: THttpServerRequestAbstract): Cardinal;
    /// <summary>
    /// 在这里调用业务函数
    /// </summary>
    function RunFunction(c: THttpServerRequestAbstract): Cardinal;
    /// <summary>
    /// 检查erp是否要更新
    /// </summary>
    function CheckUpdaterERP(c: THttpServerRequestAbstract): Cardinal;
    /// <summary>
    /// 检查app是否要更新
    /// </summary>
    function CheckUpdaterApp(c: THttpServerRequestAbstract): Cardinal;
  end;

implementation
uses
  mvc.SysObject,
  mvc.result,
  mvc.utils;

{ TAPIController }

function TAPIController.Base64Decode(c: THttpServerRequestAbstract): Cardinal;
begin
   var sText := UrlDecode(c.RouteValue['txt']);
   var s := mvc.utils.Base64Decode(sText);
   var v := TResult<string>.Create(HTTP_SUCCESS);
   v.data := s;
   c.SetOutJson(_JSON.Serialize(v));
   Result := HTTP_SUCCESS;
end;

function TAPIController.Base64Encode(c: THttpServerRequestAbstract): Cardinal;
begin
   var sText := UrlDecode(c.RouteValue['txt']);
   var s := mvc.utils.Base64Encode(sText);
   var v := TResult<string>.Create(HTTP_SUCCESS);
   v.data := s;
   c.SetOutJson(_JSON.Serialize(v));
   Result := HTTP_SUCCESS;
end;

function TAPIController.CheckUpdaterApp(c: THttpServerRequestAbstract): Cardinal;
begin

end;
/// <summary>
/// 检查erp是否要更新, /api/checkupdate/erp
/// </summary>
function TAPIController.CheckUpdaterERP(c: THttpServerRequestAbstract): Cardinal;
begin

  Result := HTTP_SUCCESS;
end;

function TAPIController.Default(c: THttpServerRequestAbstract): cardinal;
begin
  c.OutContent := '缺省处理函数.%s' + NowToString;
  c.OutContentType := mine.text;
  Result := HTTP_SUCCESS;
end;
/// <summary>
///    /api/md5/<txt>
/// </summary>
function TAPIController.MD5(c: THttpServerRequestAbstract): Cardinal;
begin
  var sText := UrlDecode(c.RouteValue['txt']);
  var v     := TResult<string>.Create(HTTP_SUCCESS);
  v.data    := mvc.utils.MD5(sText);
  c.SetOutJson(_JSON.Serialize(v));
  Result    := HTTP_SUCCESS;
end;

/// <summary>
///  /api/fun/IntToStr/<int:qty>
/// </summary>
function TAPIController.RunFunction(c: THttpServerRequestAbstract): Cardinal;
begin


  Result := HTTP_SUCCESS;
end;

/// <summary>
///     /api/say/<msg>
/// </summary>
function TAPIController.SayHello(c: THttpServerRequestAbstract): cardinal;
begin
    var v := TResult<string>.Create(HTTP_SUCCESS);
    v.data := UrlDecode(c.RouteValue['msg']);

    c.SetOutJson(_JSON.Serialize(v));

    Result := HTTP_SUCCESS;
end;


initialization
  var _ : TAPIController;
  _Router.Get('/api/say/<msg>', _.SayHello);
  _Router.Get('/api/md5/<txt>', _.MD5);
  _Router.Get('/api/base64/encode/<txt>', _.Base64Encode);
  _Router.Get('/api/base64/decode/<txt>', _.Base64Decode);
  _Router.Get('/api/fun/IntToStr/<int:qty>', _.RunFunction);
  _Router.Get('/api/checkupdate/erp', _.CheckUpdaterERP);

end.

 

标签:function,HTTP,SUCCESS,TAPIController,Cardinal,mormot2,THttpServerRequestAbstract
From: https://www.cnblogs.com/hnxxcxg/p/18307972

相关文章

  • IPv4地址划分与聚合方案之CIDR(无类域间路由)与VSLM(可变长子网掩码)
    目录基本概念:子网划分与聚合VLSM简介:CIDR简介:应用:1.IPv4子网聚合CIDR:2.IPv4子网划分VLSM与子网数计算:尾声:基本概念:首先IPv4子网划分是什么意思,我们先来讲讲IPv4地址的一个地址构造。比如,192.168.1.1/24,这是一个IPv4地址。子网掩码长度为24,化成点分十进制即为255......
  • 04OSPF外部路由计算
    网络中存在部分链路未开启OSPF协议如:。路由器连接外部网络使用静态路由或者BGP协议;·服务器直连的链路未开启OSPF协议。引入外部路由5类LSAase外部路由5类LSAtag的用处:标记外部路由计算1、和ASBR在同一个区域的路由器进行外部路由计算cost=自身到ASBR开销+引......
  • 2024-07-16 使用了.md文件作为路由文件来引用,在开发中能正常显示,打包的时候就报错了:Ca
    我使用了.md文件作为路由文件来引用,在开发中能正常显示,打包的时候就报错了//vite.config.ts import{defineConfig}from'vite'; importvuefrom'@vitejs/plugin-vue'; importmarkdownfrom"vite-plugin-md"; exportdefaultdefineConfig({  plugin......
  • Linux——添加默认路由(能ping通本网段,但是ping不通其他网段)
    2024/07/151.问题描述2.问题处理3.其他问题1.问题描述昨天服务器突然断电,今天重启后,网络出了些问题,具体情况如下:能ping通本机IPping不通网关ping不通本网段其他IP地址ping不通其他网段地址2.问题处理vi/etc/sysconfig/network-scripts/ifcfg-ens32检查了网卡配置文......
  • vue3+vite学习日记之路由
    一、新项目开启网上的项目视频大多数要什么加好友、评论啥的,我嫌麻烦,还是自己边看边写自己的项目吧。ps:可能会和参考视频有一些差异。二、项目创建先创建项目并进行一些安装配置:1、npmcreatevite@latest->输入项目名称->选择vue->选择ts->根据提示进行 2、安装vue-rou......
  • 全面掌握 Vue 路由:从基础到进阶
    标题:全面掌握Vue路由:从基础到进阶在现代前端开发中,单页面应用(SPA)已经成为主流,而路由作为SPA的核心功能之一,起着至关重要的作用。Vue.js作为一个流行的前端框架,其官方路由库vue-router提供了强大且灵活的路由管理功能。本文将深入探讨Vue路由的使用,包括基础配置、动态路......
  • vue-router引入多路由文件
    importVuefrom'vue'importRouterfrom'vue-router'importwinIndexfrom'./winIndex.js';Vue.use(Router)exportdefaultnewRouter({routes:[...winIndex,//引入路由wenj{path:'/login',name......
  • VPS测试脚本,网络线路,路由测试,流媒体服务器测试脚本
    ​收集了一些服务器测试脚本,测试性能,网络以及解锁Netflix等服务。记录收集一下,特此记录。 yabs测试脚本wget-qO-yabs.sh|bash老外比较爱用的服务器性能测试脚本。一键查看独服硬盘时间wget-qhttps://github.com/Aniverse/A/raw/i/a&&basha一键查看独立服务器通电......
  • 在Linux中,如何添加路由?
    在Linux中,添加路由是一个常见的网络配置任务,可以通过多种方法实现。以下是详细的步骤和说明:一、使用route命令添加路由(临时路由)route命令是Linux中用于显示和操作IP路由表的工具。使用route命令添加的路由是临时的,即在系统重启或网络接口重启后路由将失效。1.添加到主机的路由......
  • 基于ACO蚁群优化算法的WSN网络路由优化matlab仿真
    1.程序功能描述      基于ACO蚁群优化算法的WSN网络路由优化,通过蚁群优化迭代,在WSN中搜索一个最短的路由路径。在仿真过程中,实时显示每一次迭代过程中找到的路径,最后输出ACO的优化迭代过程,网络路由路径的搜索结果。 2.测试软件版本以及运行结果展示MATLAB2022a版本运......