Delphi实现REST服务器

时间:2017-08-27 16:51:34

标签: php rest delphi indy

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

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

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

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

问题

我希望能够做这样的事情 www.mywebsite,而不是打电话给 www.mywebsite.com/rest/create.php?param=value&param2=value2 。 COM /休息/创建/ PARAM =值安培; param2的=值2 。基本上我不想在* .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&param2=value2);并存储结果。通过这种方式,我可以根据需要打开www.mywebsite.com/rest/create/并保存数据。 indy可以执行get请求,即使它是在linux机器上(作为apache模块)吗?我已经看到独立服务器在indy下运行所以我想indy应该可以在apache模块上运行。

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

注意:在我做了一些研究后,这只是一个想法,我不确定这是否是我需要的正确方法。不是做我上面写的,我只需要用PHP或Apache做些什么吗?是否有另一种标准(和最好的)方法来创建REST服务?

1 个答案:

答案 0 :(得分:2)

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

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

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