论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. Unity C# 设计模式(三)工厂方法模式

    定义: 定义一个创建对象的接口(父类),由子类决定需要实例化哪一个类. 这样,核心工厂类成为了一个抽象角色,不再负责产品的创建,仅提供具体工厂类所必须实现的接口,这样进一步抽象化的好处是使得工厂方法模 ...

  2. U-boot 启动内核

    1:什么是UBOOT,为什么要有UBOOT? UBOOT的主要作用是用来启动linux内核,因为CPU不能直接从块设备中执行代码,需要把块设备中的程序复制到内存中,而复制之前还需要进行很多初始化工作, ...

  3. MyBatis学习总结(17)——Mybatis分页插件PageHelper

    如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件. 分页插件支持任何复杂的单表.多表分页,部分特殊情况请看重要提示. 想要使用分页插件?请看如何使用分页插件. 物理分页 该 ...

  4. Objective-C中的同步线程的锁

    概述 在多线程编程中往往会遇到多个线程同时访问共享的资源,这种情况我们需要通过同步线程来避免.也就是给线程加锁. 因为Objective-C是C语言的超集.,严格的来说是真超集.所以C语言当中的pth ...

  5. 树根 Digital root

    数根 (又称数字根Digital root)是自然数的一种性质.换句话说.每一个自然数都有一个数根.数根是将一正整数的各个位数相加(即横向相加),若加完后的值大于等于10的话,则继续将各位数进行横向相 ...

  6. Scala具体解释---------Scala是什么?可伸展的语言!

    Scala是什么 Scala语言的名称来自于"可伸展的语言". 之所以这样命名,是由于他被设计成随着使用者的需求而成长.你能够把Scala应用在非常大范围的编程任务上.从写个小脚本 ...

  7. HDU 5303 Delicious Apples(贪心 + 背包 2015多校啊)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5303 Problem Description There are n apple trees plan ...

  8. Mybatis传多个参数(推荐)

    Dao层的函数方法 int deleteMsgById(@Param("name") String name,@Param("id") String id); ...

  9. 参考《利用Python进行数据分析(第二版)》高清中文PDF+高清英文PDF+源代码

    第2版针对Python 3.6进行全面修订和更新,涵盖新版的pandas.NumPy.IPython和Jupyter,并增加大量实际案例,可以帮助高效解决一系列数据分析问题. 第2版中的主要更新了Py ...

  10. wordcontent小结

    gitee地址: https://gitee.com/yzpdegit/test 问题描述: 计算一个文件中所包含的单词数,字符个数,行数 需求分析: WordCount的需求可以概括为:对程序设计语 ...