0.前言
持续关注物联网,持续关注REST、CoAP、websocket在物联网中的应用。前些时间尝试使用PHP Slim框架搭建REST应用,但是REST服务部署在自己的电脑上,只能在局域网中使用,试想是不是应该把REST服务部署到“云平台”中。在“观海yangquan”的帮助下熟悉了各种云平台,并尝试了新浪SAE和京东JAE,最终尝试了京东JAE(新浪SAE可能不支持URL重写,所以部署REST服务存在困难)。
Slim框架的学习和使用请参考以下几篇博文,希望对您有用。
通过尝试发现,使用云平台要比自己动手搭建服务器,安装apache,安装PHP,安装mysql要方便的多,多数都是现成的服务或者组件,大大降低了开发REST服务的成本和技术门槛,毫无疑问云平台和云服务将会是物联网应用的基础。
1.创建应用
注册完京东云擎账号之后,可创建一个新应用并制定域名
【1】选择合适的开发工具
京东JAE支持很多种开发工具,例如node.js ,Ruby on Rails ,python django等。选择合适的一款即可,本文选择PHP。
【2】选择合适的域名
图1 创建应用
2.部署代码
京东JAE使用Git部署代码,若在windows环境下使用Git需要依次安装两款软件,分别是msysGit和TortoiseGit。
【windows需安装的软件】
【2】tortoiseGit
【更多安装和使用信息】请参考博文:脑瓜子的程序人生——通过TortoiseGit来使用Github或Visual Studio Online版本控制管理
该博文可以帮助您安装Git工具,并提供了一个Github提交和推送代码的例子,该过程和京东Git仓库相似。
【具体过程】
【1】创建仓库并Clone到本地,在clone的过程中会提示输入账号和密码。
图2 在某文件夹中右击 选择Git Clone
图3 选择Git仓库URL
【2】编写代码并commit至本地
图4 commit 提交代码
【3】推送至服务器
commit之后点击push(推送),推送过程需要输入账号和密码
图5 commit完成,Push至服务器
图6 Push至服务器
【4】部署代码重启服务
(推荐操作顺序,否则容易造成部署失败)
【1】停止服务
【2】部署应用
【3】启动服务
图7 重新部署服务
3.简单案例
【部署欢迎网页】
编写一个welcome.html网页,部署到京东JAE上。
<html>
<body>
<h1>Hello JD</h1>
<p>Email:xukai19871105@126.com</p>
<p><a href="http://blog.csdn.net/xukai871105">MyBlog</a></p>
</body>
</html>
访问网址xukai871105.jd-app.com/welcome.html。您可以访问该网页或许可以获得更多的信息,持续更新。
图8 welcome.html
【部署REST API】
除了部署欢迎网页之外还可以部署一个RESTAPI服务,具体的过程和方法请参考博文——【PHP再学习4——slim框架学习和使用】
<?php
require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
// GET路由
$app->get(
'/',
function () {
echo "<p>Hello JD Hello Sim</p>";
echo "<p>Email:xukai19871105@126.com</p>";
}
);
// POST路由
$app->post(
'/post',
function () {
echo 'This is a POST route';
}
);
// PUT路由
$app->put(
'/put',
function () {
echo 'This is a PUT route';
}
);
// DELETE路由
$app->delete(
'/delete',
function () {
echo 'This is a DELETE route';
}
);
$app->run();
?>
【1】测试POST方法
图9 测试POST方法
【2】测试PUT方法
图10 测试PUT方法
4.总结
尝试一下京东云之后发现“云”其实很平易近人,操作简答配置方便。在学习和使用新技术时,真正作怪的是人的“经验”,总觉得现有的方法和手段可以解决问题了就不愿意尝试新的内容,其实往前走一步海阔天空也。写这篇博文的时候我再次查阅了arduino和树莓派的资料,偶然间找到了websocket的资料,认真阅读websocket的资料我发现这正是我所要寻找的东西,更容易实现设备的远程控制,难道这是下一站吗?耐心的慢慢来吧。