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

 更新时间:2014年07月30日 11:47:19   投稿:hebedich  
超媒体即Hypermedia,是一种采用非线性网状结构对块状多媒体信息(包括文本、图像、视频等)进行组织和管理的技术。超媒体的概念类似于早期的超文本,超文本的本质是在文本内容加上链接,这样就构成了超文本。超媒体也类似。

无论是超媒体还是超文本,使用的传输协议都是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开发者的必备技能之一。反复阅读,揣摩其内涵,是我对此书读者的一点小小建议。

相关文章

  • nodejs微信开发之授权登录+获取用户信息

    nodejs微信开发之授权登录+获取用户信息

    这篇文章主要介绍了nodejs微信开发之授权登录+获取用户信息,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • Node 搭建一个静态资源服务器的实现

    Node 搭建一个静态资源服务器的实现

    这篇文章主要介绍了Node 搭建一个静态资源服务器的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 深入解析nodejs HTTP服务

    深入解析nodejs HTTP服务

    本篇文章主要介绍了深入解析nodejs HTTP服务,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 支持cjs及esm的npm包实现示例详解

    支持cjs及esm的npm包实现示例详解

    这篇文章主要为大家介绍了支持cjs及esm的npm包的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • nodejs 最新版安装npm 的使用详解

    nodejs 最新版安装npm 的使用详解

    本篇文章主要介绍了nodejs 最新版安装npm 的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • nodejs文件实现打包成exe, 并设置开机自启动的方法详解(没有黑窗口)

    nodejs文件实现打包成exe, 并设置开机自启动的方法详解(没有黑窗口)

    这篇文章主要介绍了nodejs文件实现打包成exe, 并设置开机自启动的方法,结合实例形式分析了node.js使用pkg包实现生成exe可执行文件的相关操作技巧,需要的朋友可以参考下
    2023-05-05
  • npm国内镜像 安装失败的几种解决方案

    npm国内镜像 安装失败的几种解决方案

    这篇文章主要给大家总结了npm国内镜像npm安装失败的几种解决方案,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下来一起看看吧。
    2017-06-06
  • nodejs异步编程基础之回调函数用法分析

    nodejs异步编程基础之回调函数用法分析

    这篇文章主要介绍了nodejs异步编程基础之回调函数用法,结合具体实例形式分析了阻塞与非阻塞形式下回调函数具体功能、使用技巧,需要的朋友可以参考下
    2018-12-12
  • nodejs中的fiber(纤程)库详解

    nodejs中的fiber(纤程)库详解

    这篇文章主要介绍了nodejs中的fiber(纤程)库详解,本文讲解了node-fibers的安装、API介绍、方法使用示例等内容,需要的朋友可以参考下
    2015-03-03
  • nodeJS中关于path.resolve()的用法解析

    nodeJS中关于path.resolve()的用法解析

    这篇文章主要介绍了nodeJS中关于path.resolve()的用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06

最新评论