IdHTTPServer(indy10)开发REST中间件

浏览器通过“get”方式查询数据URL样例:http://127.0.0.1:7777/query?sql=select * from t1

/query 表示是“查询”命令字

?后面是SQL参数

服务端代码:

procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
method, sql: string;
{$IFDEF ado}
dm: TfrmDMado;
{$ENDIF}
{$IFDEF odac}
dm: TfrmDModac;
{$ENDIF}
begin
method := ARequestInfo.Document;  // 获取命令字
if method = ‘‘ then
Exit;
{$ifdef ado}
CoInitialize(nil);
{$endif}
try
if method = ‘/query‘ then  // 查询数据
begin
sql := ARequestInfo.Params.Values[‘sql‘];  // 取SQL参数
if sql = ‘‘ then
Exit;
AResponseInfo.ResponseNo := 0;
AResponseInfo.ContentType := ‘text/html‘;
{$IFDEF ado}
dm := TfrmDMado.Create(nil);
{$ENDIF}
{$IFDEF odac}
dm := TfrmDModac.Create(nil);
{$ENDIF}
try
AResponseInfo.ContentText := dm.Query(sql);  // 返回数据引擎查询到的JSON格式的数据
AResponseInfo.WriteContent;  // 给申请者回复
finally
dm.Free;
end;
end;
except
on E: Exception do
begin

end;
end;
{$ifdef ado}
CoUninitialize;
{$endif}
end;

时间: 2024-12-26 08:07:18

IdHTTPServer(indy10)开发REST中间件的相关文章

全栈项目|小书架|服务器开发-Koa2中间件机制洋葱模型了解一下

KOA2 是什么? Koa是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小.更富有表现力.更健壮的基石. 通过利用 async函数,Koa帮你丢弃回调函数,并有力地增强错误处理. Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序. 为什么产生? 笔者对这几个框架都不熟,这里就不误人子弟了.可以看看下面一些大佬的介绍. Koa是由Express的原班人马打造,那么他们为什么不将

Web框架开发-Django中间件

---恢复内容开始--- 一.中间件的概念 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用不好会影响到性能. Django的中间件的定义: Middleware is a framework of hooks into Django’s request/response processing. <br>It’s a light, low-level “plugin”

中间件

中间件(StaticFiles)使用 ASP.NET Core 开发,中间件(StaticFiles)的使用,我们开发一款简易的静态文件服务器. 告别需要使用文件,又需要安装一个web服务器.现在随时随地打开程序即可使用,跨平台,方便快捷. 前一篇讲解了中间件的开发,了解了中间件的知识. 下面我们就来使用StaticFiles 开发一款简易静态文件服务器.还可以直接运行纯静态的网站. 新建的ASP.NET Core 项目,不是空的,也就会自带StaticFiles .wwwroot 就是靠这个中

DELPHI低版本开发的两层程序平稳升级到三层

N年前,我们用DELPHI低版本开发的两层程序(比如工厂ERP系统),现在仍然在企业广泛地得到使用,但老系统有些跟不上企业的发展需要了.主要表现在:虽然我们的老系统对企业的业务实现得很好,可以很好地满足企业目前的业务需求,但现在企业要求我们的服务器要能够远程分布式地布署,于是我们自然会想到将原来的两层程序升级为三层,这样无疑将满足企业新的需求.大家都知道DELPHI低版本中间件的开发框架是基于微软陈旧的COM架构的MIDAS,这是一种一.二十年前的技术,MIDAS以前完全没有考虑对后来新的64位

中间件学习——技术平台三步曲

在前面两篇文章中,我们了解了中间件的基本概念和中间件的主要技术分类,在这篇文章中我们了解下基于中间件的主流技术平台. 技术平台 现有的基于中间件的主流技术平台一般典型的应用是为三层/多层结构的分布式软件系统提供各种开发支撑,因为三层结构的分布式软件的核心为中间层,因此支撑主要集中在对中间层开发的支撑上,目前应该最广泛的技术平台有三类: 基于 OMG(ObjectManagement Group,对象管理组织)CORBA规范 基于 Sun JEE(JavaEnterprise Edition,Ja

LayIM.AspNetCore Middleware 开发日记(四)主角登场(LayIM介绍)

前言 在前几篇中已经初步介绍了开发AspNetCore中间件的一些基础知识,不过都没有很深入的去研究,后续还是需要去看看源码.本篇呢,终于有点开头的味道了,就是要介绍LayIM了,其实标题写的是主角,其实由于我已经多次对接过LayIM的开发,所以这次的主角应该是Asp.Net Core,不过技术没有好坏之分,合起来才能完美.本篇对于LayIM只是做简单介绍,想了解详情的小伙伴可以去官网查看. LayIM简介 我觉得再多的语言也不如一张图来的实在. LayIM常用接口介绍 layim.config

如何通俗理解中间件

中间件一开始是为了解决一个很头疼的问题: Java 无法直接操纵内存,内存访问必须经过 JVM ( Java 虚拟机).因此,直接操纵内存的部分最好由 C/C++来完成,再由 Java 调用 C/C++的函数.这样一来,就有了专门用 C/C++开发的中间件,供 Java 调用. 后来,在数据库的不断发展中,人们意识到直接操纵数据库并不是一个很好的做法,因为操纵数据库本质上是用共享内存(多进程,多 CPU 核心,甚至多 CPU 共享同一块内存)实现的,而共享内存会带来很多问题,例如,在老一些的 C

彻底搞懂Scrapy的中间件(一)

中间件是Scrapy里面的一个核心概念.使用中间件可以在爬虫的请求发起之前或者请求返回之后对数据进行定制化修改,从而开发出适应不同情况的爬虫. "中间件"这个中文名字和前面章节讲到的"中间人"只有一字之差.它们做的事情确实也非常相似.中间件和中间人都能在中途劫持数据,做一些修改再把数据传递出去.不同点在于,中间件是开发者主动加进去的组件,而中间人是被动的,一般是恶意地加进去的环节.中间件主要用来辅助开发,而中间人却多被用来进行数据的窃取.伪造甚至攻击. 在Scrap

scrapy 爬虫学习二[中间件的学习]

scrapy源码解析参考连接:https://www.jianshu.com/p/d492adf17312 ,直接看大佬的就行了,这里便就不多说了. 今天要学习的是:Scrapy框架中的download middlerware[下载中间件]用法. 一:官方文档中,对下载中间件的解释如下 下载中间件是介于scrapy的requests/response处理的钩子框架,是用于全局修改scrapy requests和response的一个轻量.底层的系统. 二:使用下载器中间件时必须激活这个中间件,方