浅析Node在构建超媒体API中的作用


Posted in Javascript onJuly 30, 2014

无论是超媒体还是超文本,使用的传输协议都是HTTP,这意味着超媒体可以被所有的浏览器所接受。而描述超媒体的类型我们使用MIME。MIME即Multipurpose Internet Mail Extensions,多用途互联网邮件扩展类型,MIME是一个互联网标准,最早是应用于电子邮件系统的,后来其定义逐步应用到互联网领域。用MIME指定媒体的类型,那么客户端浏览器就能清楚地知道,该如何处理这种类型的媒体。

Node.js是基于谷歌V8 JavaScript引擎构建的一种库,主要用于方便、快捷的搭建易伸缩的网络应用。Node.js是事件驱动的,它充分利用JavaScript的闭包特性和事件处理机制,采用了非阻塞I/O模型,非常适合数据密集型的实时应用。Node.js实现了与Apache HTTP Server相似的功能,使之具备了构建基于JavaScript的高并发Web应用的能力。Node.js使得前后端开发可以使用同一种编程语言——JavaScript。

REST Web服务可以说是为HTTP协议量身定做的,在HTTP协议中使用URI来标识唯一的网络资源,用GET、POST、PUT、DELETE等动词来操作资源,REST Web服务显然比SOAP Web服务更加简洁高效,因为它不需要额外的封装协议和远程过程调用。

至于资源的表现形式,可以是HTML5的,也可以是XML数据格式、JSON数据格式,又或者是二进制的Protobuf格式。使用哪一种数据格式,取决于项目的需求。

Node.js提供了HTTP操纵能力,在客户端或服务器端都可以使用。Node.js最大的优势是它有庞大的第三方库,在RESTful Web Services方面,同样有多个库可以简化我们的开发工作。比如:

1)node-restify

主页: https://github.com/mcavage/node-restify

restify是一个精简的、与Express库相似的,用于构建RESTful API的Node.js库。

安装:

$ npm install restify

2)node-restful

主页: https://github.com/baugarten/node-restful

node-restful是Express库的封装,很适合创建RESTful API。

安装:

npm install node-restful

还有很多第三方库就不一一列举了。除此以外,我们还可以直接使用Node.js的核心库构建RESTful API,或者是使用Express库构建RESTful API。方法有很多种,都能达到目的。

超媒体的书很少,因此专门论述如何构建超媒体API的书就更少了,超媒体也是网络资源,同样的可以用URI来定义,因此Node.js来实现超媒体的RESTful API是很容易的。

不得不说,《使用HTML5和Node构建超媒体API》这本书翻译的太生硬了,阅读时感觉不畅快。但是,这本书本身还是很有价值的,因为实现超媒体的RESTful API这种需求很常见,可以说是Web开发者的必备技能之一。反复阅读,揣摩其内涵,是我对此书读者的一点小小建议。

Javascript 相关文章推荐
Dojo之路:如何利用Dojo实现Drag and Drop效果
Apr 10 Javascript
javascript一点特殊用法
May 28 Javascript
javascript 表单规则集合对象
Jul 21 Javascript
菜鸟javascript基础整理1
Dec 06 Javascript
解决jquery异步按一定的时间间隔刷新问题
Dec 10 Javascript
js修改table中Td的值(定义td的单击事件)
Jan 10 Javascript
jQuery toggleClass应用实例(附效果图)
Apr 06 Javascript
js获取数组的最后一个元素
Apr 14 Javascript
js+html5实现的自由落体运动效果代码
Jan 28 Javascript
浅析Bootstrap验证控件的使用
Jun 23 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
Mar 28 Javascript
如何测量vue应用运行时的性能
Jun 21 Javascript
JS实现图片无间断滚动代码汇总
Jul 30 #Javascript
使用jquery.upload.js实现异步上传示例代码
Jul 29 #Javascript
js动态添加onclick事件可传参数与不传参数
Jul 29 #Javascript
使用focus方法让光标默认停留在INPUT框
Jul 29 #Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
Jul 29 #Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
Jul 29 #Javascript
js返回前一页刷新本页重载页面
Jul 29 #Javascript
You might like
PHP使用CURL获取302跳转后的地址实例
2014/05/04 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
jquery异步调用页面后台方法‏(asp.net)
2011/03/01 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
2014/05/22 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
基于jQuery Easyui实现登陆框界面
2017/07/10 jQuery
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
es6 filter() 数组过滤方法总结
2019/04/03 Javascript
js中Generator函数的深入讲解
2019/04/07 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
微信小程序实现购物车代码实例详解
2019/08/29 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
用Python实现协同过滤的教程
2015/04/08 Python
浅析Python中将单词首字母大写的capitalize()方法
2015/05/18 Python
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
Java分治归并排序算法实例详解
2017/12/12 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
简单介绍django提供的加密算法
2019/12/18 Python
python实现发送QQ邮件(可加附件)
2020/12/23 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
大学生预备党员自我评价分享
2013/11/16 职场文书
集体备课反思
2014/02/12 职场文书
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
锦旗赠语
2015/06/23 职场文书
DBCA命令行搭建Oracle ADG的流程
2021/06/11 Oracle
Flask使用SQLAlchemy实现持久化数据
2021/07/16 Python
Python PIL按比例裁剪图片
2022/05/11 Python