php - Delphi 实现 REST 服务器

标签 php rest delphi indy

我在服务器上有一个 mysql 数据库,我使用我编写的脚本在其中插入数据。我必须打开 www.mywebsite.com/rest/create.php?param=value¶m2=value2 来创建一个新资源,然后我必须打开另一个 php 文件来编辑一个项目等等。这是基本方法:一个 php 文件接受一些参数,然后将文件存储在数据库中。

我正在使用 TIdHTTP 因为我有可能做类似的事情:

TIdHTTP1.Get(www.mywebsite.com/rest/create.php?param=value&param2=value2);

create.php 页面正在返回一些以 json 编码的数据。在我的 android 应用程序中,我创建了一个 rest 客户端,它能够解析为响应 php 页面而收到的 json。例如,如果我调用 .../show.php?id=3 页面的结果是一个包含我的数据的 json;稍后 Android 应用程序将解析它们并向用户显示一些结果。


问题

而不是调用 www.mywebsite.com/rest/create.php?param=value¶m2=value2 我希望能够做这样的事情www.mywebsite.com/休息/创建/?param=value¶m2=value2。基本上我不想在 *.php 中使用文件名,但我想使用不带文件名的第二种 URI。

问题是这是我的第一次,我真的不知道该怎么做。

可能的解决方案。在阅读 Expert Delphi 后,我找到了一个可能的解决方案。我可以为 linux 创建一个 WebBroker 服务器(这样我就可以导出 Apache 模块 *.so),实现一些像这样的操作:

enter image description here

当有/rest/create/请求(使用 OnAction 事件)时,我可以运行 TIdHTTP1.Get(www.mywebsite.com/rest/create.php?param=value¶m2=value2); 并存储结果。通过这种方式,我可以根据需要打开 www.mywebsite.com/rest/create/并保存数据。即使在 linux 机器上(作为 apache 模块),indy 也可以执行 get 请求吗?我已经看到独立服务器在 indy 下运行,所以我猜 indy 应该能够在 apache 模块上工作。

不幸的是,我对这类事情还很陌生,实际上我也真的不知道在网上搜索什么来找到解决方案。我的解决方案可以工作,但我很确定有一个适当的最终有效的方法来做到这一点。

注意:这只是我经过一些研究后的一个想法,我不确定这是完成我需要的事情的正确方法。除了做我上面写的,我是否只需要用 PHP 或 Apache 做一些事情?是否有另一种标准(也是最佳)方法来创建 REST 服务?

最佳答案

您的问题不在 Delphi 端,而是在服务器端。

如果你想要一个 URL/rest/create/,你只需在服务器上的“rest”文件夹下创建一个“create”文件夹,并在上面放一个 index.php 文件。

或者您可以在 .htaccess 文件中使用 URL 重写规则。

关于php - Delphi 实现 REST 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45907219/

相关文章:

php - 如何在yii2中设置restful api的分页?

delphi - 如何在Delphi组件中存储大文本?

forms - 在 Delphi XE 中将类作为过程的参数传递

multithreading - Delphi线程

php - Magento 产品 : remove SKU from product name

PHP 和 MySQL - 如果值不为空则循环查询

javascript - 使用他们的 API 从 AWS S3 获取一个非公开的 JavaScript 文件

php - 使用 Ajax 和 mysql 检索数据

javascript - 处理多个 ajax 响应

java - 从 DAO 层向 Controller 抛出异常是好习惯吗?