我在服务器上有一个MySQL数据库,使用我编写的脚本向其中插入数据。为了创建新资源,我需要打开
我正在使用
问题
www.mywebsite.com/rest/create.php?param=value¶m2=value2
,然后打开另一个PHP文件来编辑项目等等。这是基本的方法:一个PHP文件获取一些参数,然后将文件存储在数据库中。我正在使用
TIdHTTP
,因为我有可能执行以下操作:TIdHTTP1.Get(www.mywebsite.com/rest/create.php?param=value¶m2=value2);
create.php
页面返回一些以json编码的数据。我已经在我的Android应用程序中创建了一个REST客户端,可以解析响应php页面接收到的json。例如,如果我调用.../show.php?id=3
,页面的结果是一个包含我的数据的json,稍后android应用程序将解析它们并向用户显示一些结果。
问题
我想做的是,不使用*.php文件名,而是像这样使用第二种URI www.mywebsite.com/rest/create/?param=value¶m2=value2来代替调用www.mywebsite.com/rest/create.php?param=value¶m2=value2。基本上我不想使用*.php文件名,但我想使用第二种没有文件名的URI。
问题在于这是我第一次尝试这样做,我真的不知道该怎么办。
可能的解决方案。在阅读Expert Delphi之后,我发现了一个可能的解决方案。我可以为Linux创建一个WebBroker服务器(以便我可以导出Apache模块*.so),实现一些操作,如下所示:当有一个请求到达/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服务还有其他标准(最佳)方法吗?