浅析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 相关文章推荐
编辑浪子版表单验证类
May 12 Javascript
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
Jan 13 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
Jan 18 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
Feb 21 Javascript
jquery制做精致的倒计时特效
Jun 13 Javascript
点击页面任何位置隐藏div的实现方法
Sep 05 Javascript
微信开发 消息推送实现代码
Oct 21 Javascript
最细致的vue.js基础语法 值得收藏!
Nov 03 Javascript
微信小程序 简单教程实例详解
Jan 13 Javascript
一个简易时钟效果js实现代码
Mar 25 Javascript
Vue 项目部署到服务器的问题解决方法
Dec 05 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
Jun 10 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输入流php://input使用浅析
2014/09/02 PHP
php静态文件生成类实例分析
2015/01/03 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
jQuery实现预加载图片的方法
2015/03/17 Javascript
js实现继承的5种方式
2015/12/01 Javascript
jquery之基本选择器practice(实例讲解)
2017/09/30 jQuery
JS 实现百度搜索功能
2018/02/01 Javascript
vue 微信授权登录解决方案
2018/04/10 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
django开发之settings.py中变量的全局引用详解
2017/03/29 Python
Python的时间模块datetime详解
2017/04/17 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
Python模拟登录的多种方法(四种)
2018/06/01 Python
python+tkinter实现学生管理系统
2019/08/20 Python
基于python监控程序是否关闭
2020/01/14 Python
Python常用库大全及简要说明
2020/01/17 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
基于django 的orm中非主键自增的实现方式
2020/05/18 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
python 实现表情识别
2020/11/21 Python
客户表扬信范文
2014/01/10 职场文书
工程材料采购方案
2014/05/18 职场文书
大学生村官考核材料
2014/05/23 职场文书
办公用品质量保证书
2015/05/11 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书
vue backtop组件的实现完整代码
2021/04/07 Vue.js
Java tomcat手动配置servlet详解
2021/11/27 Java/Android
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js
TS 类型收窄教程示例详解
2022/09/23 Javascript