问题是这样的:我有一个在PHP服务器上运行的Web应用程序。我想为此构建一个REST API。
我进行了一些研究,发现REST api使用带有身份验证密钥(不一定)的某些URI的HTTP方法(GET,POST
…),并且信息以HTTP响应的形式返回,信息为XML或JSON。 (我宁愿使用JSON)。
我的问题是:
这是简单php中的一个非常简单的示例。
有2个文件 client.php 和 api.php
。我将两个文件放在相同的url:上http://localhost:8888/
,因此您必须将链接更改为您自己的url。(该文件可以在两个不同的服务器上)。
这只是一个例子,它非常快捷,肮脏,而且自从我完成php以来已经很长时间了。但这是一个api的想法。
client.php
<?php
/*** this is the client ***/
if (isset($_GET["action"]) && isset($_GET["id"]) && $_GET["action"] == "get_user") // if the get parameter action is get_user and if the id is set, call the api to get the user information
{
$user_info = file_get_contents('http://localhost:8888/api.php?action=get_user&id=' . $_GET["id"]);
$user_info = json_decode($user_info, true);
// THAT IS VERY QUICK AND DIRTY !!!!!
?>
<table>
<tr>
<td>Name: </td><td> <?php echo $user_info["last_name"] ?></td>
</tr>
<tr>
<td>First Name: </td><td> <?php echo $user_info["first_name"] ?></td>
</tr>
<tr>
<td>Age: </td><td> <?php echo $user_info["age"] ?></td>
</tr>
</table>
<a href="http://localhost:8888/client.php?action=get_userlist" alt="user list">Return to the user list</a>
<?php
}
else // else take the user list
{
$user_list = file_get_contents('http://localhost:8888/api.php?action=get_user_list');
$user_list = json_decode($user_list, true);
// THAT IS VERY QUICK AND DIRTY !!!!!
?>
<ul>
<?php foreach ($user_list as $user): ?>
<li>
<a href=<?php echo "http://localhost:8888/client.php?action=get_user&id=" . $user["id"] ?> alt=<?php echo "user_" . $user_["id"] ?>><?php echo $user["name"] ?></a>
</li>
<?php endforeach; ?>
</ul>
<?php
}
?>
api.php
<?php
// This is the API to possibility show the user list, and show a specific user by action.
function get_user_by_id($id)
{
$user_info = array();
// make a call in db.
switch ($id){
case 1:
$user_info = array("first_name" => "Marc", "last_name" => "Simon", "age" => 21); // let's say first_name, last_name, age
break;
case 2:
$user_info = array("first_name" => "Frederic", "last_name" => "Zannetie", "age" => 24);
break;
case 3:
$user_info = array("first_name" => "Laure", "last_name" => "Carbonnel", "age" => 45);
break;
}
return $user_info;
}
function get_user_list()
{
$user_list = array(array("id" => 1, "name" => "Simon"), array("id" => 2, "name" => "Zannetie"), array("id" => 3, "name" => "Carbonnel")); // call in db, here I make a list of 3 users.
return $user_list;
}
$possible_url = array("get_user_list", "get_user");
$value = "An error has occurred";
if (isset($_GET["action"]) && in_array($_GET["action"], $possible_url))
{
switch ($_GET["action"])
{
case "get_user_list":
$value = get_user_list();
break;
case "get_user":
if (isset($_GET["id"]))
$value = get_user_by_id($_GET["id"]);
else
$value = "Missing argument";
break;
}
}
exit(json_encode($value));
?>
在此示例中,我没有对数据库进行任何调用,但是通常这是您应该执行的操作。您还应将“ file_get_contents”功能替换为“ curl”。
问题内容: 假设我要在5台计算机上运行Elasticsearch集群,并且它们都连接到共享驱动器。我将Elasticsearch的一个副本放到了该共享驱动器上,以便所有三个都可以看到它。我是否只是在我所有机器上的共享驱动器上启动Elasticsearch,并且集群将自动发挥作用?还是我必须配置特定设置以使Elasticsearch意识到它可以在5台计算机上运行?如果是这样,相关的设置是什么?我应该
问题内容: 如何安排Jenkins构建,使其只能在每天的特定时间构建? 例如从下午4点开始 我的理解是:0分钟,每个月的星期一至星期日下午4点,但是它每分钟生成一次:( 如有任何建议,我将不胜感激。谢谢! 问题答案: 请阅读其他答案和评论,还有更多的信息和所描述的细微差别(哈希函数?),我在回答此问题时不知道。 根据詹金斯自己对计划任务的帮助(“?”按钮),指定了5个字段: 该字段遵循cron的语
我有以下js代码: 下面的服务器代码(最后一行调用它): 有时前端会忽略
在workerman中建立udp服务很简单,类似如下代码 $udp_worker = new Worker('udp://127.0.0.1:9090'); $udp_worker->onMessage = function($connection, $data){ var_dump($data); $connection->send('get'); }; Worker::runA
问题内容: 我正在用StringBuilder构建一个String 然后我建立一个网址 然后我尝试连接 但是从我得到的结果来看,URL似乎不正确。就像某些参数被错误地传递了一样。这就是为什么我认为问题出在StringBuilder中。 问题出在我尝试传递的双参数中。 然后我把它放在URL中。但是,如果我将其作为字符串给出,则结果是正确的。 是否需要UrlEncoding?我将尝试以下建议。 问题答
我想构建一个WAR文件(然后将其部署到Tomcat)。因此,作为练习,我在IDEA Intellij中使用Gradle开始了一个新的Spring启动项目。之后,我在文件中应用了这个插件,比如这个。 问题是,当我尝试在终端中运行时,没有得到war文件!唯一发生的事情是,它将生成一个,其中包含3个子组件、和,但在这些组件中没有战争。 我应该怎么做才能获得WAR文件?我看过这段视频,但这家伙使用Mave