首页 > 其他分享 >mormot2 笔记(二) Http服务的简单搭建

mormot2 笔记(二) Http服务的简单搭建

时间:2023-08-17 10:33:44浏览次数:44  
标签:Http string TUriRouter TXXXContext mormot2 Router 路由 搭建

mormot2框架中有个THttpServer类,它有一个Router属性,定义如下:

  property Router: TUriRouter read fRoute; 

Router是添加路由的入口点,它有和http协议对应的get, post, put, delete等方法,这些方法可以添加路由,下面常用的get方法定义。

    procedure Get(const aUri: RawUtf8; const aExecute: TOnHttpServerRequest); overload;
  TOnHttpServerRequest = function(Ctxt: THttpServerRequestAbstract): cardinal of object;

这里我们不能像js中koa2类似的写法,除非我们写个helper类,给TUriRouter加个方法,然后就可以像koa2中的写法一样了,类似这样:

HttpServer.Router.getEx('/api/login', function(ctx, TXXXContext): Integer
begin
   //代码
end;

如果不想使用上面的方式写代码,我们可以按delphi WebModule的方式写,即写不同的TWebAction,  我们先定义TAbstractRoute抽象类,然后写不同的子类,代码类似这样:

TAbstractRout = class
protected
  FPreFix: string;  //路由前缀,很有必要, 以后/api2/login时,这里变动就行了。
FUrl: string;
FMethodType: string; public procedure Execute(ctx: TXXXContext); virtual; abstract; end; TLoginRoute = class(TAbstractRout) public procedure Execute(ctx: TXXXContext); overide; end;

这样就能适配TUriRouter.Get方法了。

此外,我们也可以使用“贴标签”的方式来定义路由,即使用TCustomAttribute,这样就和JAVA等框架中的写法一样了,看个人的喜好吧。

 

标签:Http,string,TUriRouter,TXXXContext,mormot2,Router,路由,搭建
From: https://www.cnblogs.com/Jiaojiawang/p/17636937.html

相关文章

  • Qt for ARM_Linux环境搭建-Qt5.7+iTop4412嵌入式平台移植
    原文:https://blog.csdn.net/hechao3225/article/details/52981148经过为期3天的编译、移植,终于将Qt5.7成功移植到iTop4412开发板,板载exynos4412处理器,基于ARMCortex-A9内核。因此,本篇教程以iTop4412示例,适用于Qt5.7在ARM_Linux平台上的移植。---------------------------------......
  • DNS服务器搭建
    DNS服务器搭建bind软件搭建dns服务器1.准备好机器172.16.1.61机器服务端客户端172.16.1.7这个机器作为客户端2.服务端部署bind软件bind软件是dns服务器的主软件,bind-utils是提供dns解析的命令,如dig这个命令yuminstallbindbind-utils-y3.安装完毕后,检查防火......
  • centos搭建FTP
    一,简介1,Centos中的FTP在Linux系统中FTP服务器的服务不并是叫做ftp,而是叫做vsftpd,通过在Linux系统中安装和配置vsftpd来实现文件的共享。2,vsftpdvsftpd全称(verysecureFTPdaemon)是一款在Linux系统中最受欢迎的FTP服务器。vsftpd支持匿名访问和本地用户模式两种访问方式。匿名访......
  • vue-cli项目搭建的详细过程
    vue-cli官方文档:https://cli.vuejs.org/zh/guide/安装vue-cli,前提:需要安装node和npm新建vue项目的过程:1、全局安装vue-cli npminstall-g@vue-cli  2、在项目放置目录下,创建项目 vuecreatemy-app  (my-app为项目名称,注意不要使用驼峰命名)3、打开项目,......
  • 软件测试|docker搭建Jenkins+Python+allure自动化测试环境
    简介本文将详细介绍如何使用Docker搭建一个完整的自动化测试环境,其中包括Jenkins作为持续集成和持续交付工具,Python作为测试脚本编写语言,以及Allure作为测试报告生成工具。通过使用Docker容器,您可以轻松地设置和管理这些工具,提高测试效率和质量。安装docker安装docker的步骤,可以直......
  • 微信小程序生成外部http短链
    微信小程序通过外部链接动态访问到某个小程序的某个页面(只支持非个人小程序,个人小程序需要一个非个人小程序做跳板);方案一(免费、有50w条限制): 通过微信官方给的api生成短链;api1:生成token,点击链接查看官方文档https://api.weixin.qq.com/cgi-bin/token?grant_type=client_creden......
  • Streamlit项目: 轻松搭建部署个人博客网站
    文章目录1前言1.1探索Streamlit:轻松创建交互式应用1.2最全Streamlit教程专栏2我的个人博客网站已上线!2.1一个集成了智能中医舌诊-中e诊专栏的博客网站2.2前期准备2.3使用StreamlitCloud运行3知识点讲解3.1实现多页面:两种方案3.2代码讲解3.3实现步骤3.4完整代码4......
  • 搭建mongo副本集
    1.下载镜像dockerpullmongo:6.0.82.在/data/mongodb目录下新建mongodb-1、mongodb-2、mongodb-3三个文件夹3.生成keyfile文件#400权限是要保证安全性,否则mongod启动会报错opensslrand-base64756>mongodb.keychown999:999mongodb.key将生成的mongodb.key......
  • 0基础微信小程序搭建教程之禾匠商城源码搭建教程
    2022年版禾匠商城V4搭建教程(重新更新一份禾匠商城V4独立版搭建教程,因为之前的版本搭建跟现在有点不一样,现在一键安装比之前简单多了,废话不多现在开始!)准备工作:1、服务器一个,要好2核4G,安装系统CentOS7.5和宝塔面板。2、Nginx1.20,插件:PHP72、数据库5.6、Redis6.2.6,其它......
  • nginx把http迁移到https
    买的证书是阿里云提供的server{#HTTPS的默认访问端口443。#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。listen443ssl;#填写证书绑定的域名server_name<yourdomain>;#填写证书文件名称ssl_certificate......