论Node在构建超媒体API中的作用
作者:chszs,转载需注明。

博客主页:http://blog.csdn.net/chszs

超媒体即Hypermedia,是一种採用非线性网状结构对块状多媒体信息(包含文本、图像、视频等)进行组织和管理的技术。超媒体的概念类似于早期的超文本。超文本的本质是在文本内容加上链接。这样就构成了超文本。超媒体也类似。
不管是超媒体还是超文本。使用的传输协议都是HTTP,这意味着超媒体能够被全部的浏览器所接受。

而描写叙述超媒体的类型我们使用MIME。

MIME即Multipurpose Internet Mail Extensions,多用途互联网邮件扩展类型,MIME是一个互联网标准,最早是应用于电子邮件系统的。后来其定义逐步应用到互联网领域。

用MIME指定媒体的类型。那么client浏览器就能清楚地知道,该怎样处理这样的类型的媒体。

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操纵能力,在client或server端都能够使用。Node.js最大的优势是它有庞大的第三方库,在RESTful Web Services方面,相同有多个库能够简化我们的开发工作。比方:
1)node-restify
restify是一个精简的、与Express库类似的,用于构建RESTful API的Node.js库。

安装:
$ npm install restify
2)node-restful
node-restful是Express库的封装,非常适合创建RESTful API。
安装:
npm install node-restful
还有非常多第三方库就不一一列举了。

除此以外。我们还能够直接使用Node.js的核心库构建RESTful API,或者是使用Express库构建RESTful API。方法有非常多种,都能达到目的。

超媒体的书非常少。因此专门论述怎样构建超媒体API的书就更少了,超媒体也是网络资源,相同的能够用URI来定义,因此Node.js来实现超媒体的RESTful API是非常easy的。

不得不说。《使用HTML5和Node构建超媒体API》这本书翻译的太生硬了,阅读时感觉不畅快。可是,这本书本身还是非常有价值的。由于实现超媒体的RESTful API这样的需求非经常见,能够说是Web开发人员的必备技能之中的一个。重复阅读,揣摩其内涵,是我对此书读者的一点小小建议。

论Node在构建超媒体API中的作用的更多相关文章

  1. 基于node.js构建微服务中的mock服务

    缘起 由于现在微服务越来越火了,越来越多的微服务融入到了日常开发当中.在开发微服务的时候,经常会遇到一个问题由于依赖于其他服务,导致你的进度受到阻碍.使你不得不先mock出你期望调用依赖服务的输出,来 ...

  2. Spring MVC中使用 Swagger2 构建Restful API

    1.Spring MVC配置文件中的配置 [java] view plain copy <!-- 设置使用注解的类所在的jar包,只加载controller类 --> <contex ...

  3. 在 .NET Core 中构建 REST API

    翻译自 Camilo Reyes 2020年8月26日的文章 <Build a REST API in .NET Core> [1] REST API 可以使用简单的动词(如 POST.P ...

  4. 在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务

    在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务 https://procodeguide.com/programming/polly-in-aspnet-core ...

  5. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【五】——在Web Api中实现Http方法(Put,Post,Delete)

    系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 在Web Api中,我们对资源的CRUD操作都是通过相应的Http方法来实现——Post(新 ...

  6. ASP.NET MVC和Web API中的Angular2 - 第1部分

    下载源码 - 903.5 KB 内容 第1部分:Visual Studio 2017中的Angular2设置,基本CRUD应用程序,第三方模态弹出控件 第2部分:使用Angular2管道进行过滤/搜索 ...

  7. nodejs api 中文文档

    文档首页 英文版文档 本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可. Node.js v0.10.18 手册 & 文档 索引 | 在单一页面中浏览 | JSON格 ...

  8. 使用ASP.NET Core 3.x 构建 RESTful API - 2. 什么是RESTful API

    1. 使用ASP.NET Core 3.x 构建 RESTful API - 1.准备工作 什么是REST REST一词最早是在2000年,由Roy Fielding在他的博士论文<Archit ...

  9. Node.js实现RESTful api,express or koa?

    文章导读: 一.what's RESTful API 二.Express RESTful API 三.KOA RESTful API 四.express还是koa? 五.参考资料 一.what's R ...

随机推荐

  1. Linux学习-Ubuntu 18.04-安装图文教程

    Ubuntu(友帮拓.优般图.乌班图)是一个以桌面应用为主的开源GNU/Linux操作系统,Ubuntu 是基于Debian GNU/Linux,支持x86.amd64(即x64)和ppc架构,由全球 ...

  2. shell脚本不同运行方式的差异

    说明:以下是个人的见解,不一定都正确,如有错误,欢迎指正! 一,shell脚本的运行方式,最常见的有以下几种: 1 )  . xxx.sh,注意,前面是一个点'.' 2 ) source xxx.sh ...

  3. CMDB学习之六 --客户端请求测试,服务端api优化

    客户端使用agent 请求测试,agent使用的POST 请求,使用requests模块 本地采集,汇报服务端 #!/usr/bin/env python # -*- coding:utf-8 -*- ...

  4. OpenJDK源码研究笔记(八)-详细解析如何读取Java字节码文件(.class)

    在上一篇OpenJDK源码研究笔记(七)–Java字节码文件(.class)的结构中,我们大致了解了Java字节码文件的结构. 本篇详细地介绍了如何读取.class文件的大部分细节. 1.构造文件  ...

  5. Python学习笔记(2)--基本数据类型

    在介绍基本数据类型之前,先说一个系统方法type():返回对象的数据类型,可以帮助我们查看系统的类型定义 python不同的版本,类型名称稍有不同,这里使用的是3.5.2版本 一.基本数据类型: 1. ...

  6. 移动端web app开发备忘

    近期要做个手机html5的页面,做些知识储备,重要的点记录下来以备兴许. 1.devicePixelRatio:定义设备物理象素和设备独立象素的比例.css中的px能够看作是设备的独立象素.通过dev ...

  7. resin后台输出中文乱码的解决的方法!

    近期从tomcat移植到resin,发现这东西不错啊! 仅仅是后台输出时有时候中文会乱码. 如今找到resin后台输出中文乱码的解决的方法: 编辑conf/resin.con文件: <!--ja ...

  8. Linux150个常用指令

    线上查询及帮助命令(2个) 文件和目录操作命令(18个) 查看文件及内容处理命令(21个) 文件压缩及解压缩命令(4个) 信息显示命令(11个) 搜索文件命令(4个) 用户管理命令(10个) 基础网络 ...

  9. BFC 和 haslayout

    在解释 BFC 是什么之前,需要先介绍 Box.Formatting Context的概念. Box: CSS布局的基本单位 Box 是 CSS 布局的对象和基本单位, 直观点来说,就是一个页面是由很 ...

  10. 【Codeforces Round #425 (Div. 2) B】Petya and Exam

    [Link]:http://codeforces.com/contest/832/problem/B [Description] *能代替一个字符串(由坏字母组成); ?能代替单个字符(由好字母组成) ...