Node.js 除了用来编写 WEB 应用之外,还可以用来编写 API 服务,我们在本文中会介绍编写 Node.js Rest API 的最佳实践,包括如何命名路由.进行认证和测试等话题,内容摘要如下: 正确使用 HTTP Method 和路由 正确的使用 HTTP 状态码 使用 HTTP Header 来发送元数据 为 REST API 挑选合适的框架 要对 API 进行黑盒测试 使用基于 JWT 的无状态的认证机制 学会使用条件请求机制 拥抱接口调用频率限制(Rate-Limiting) 编…
Web API在过去的几年里非常盛行,因为它有着语法简单.规范化和轻量级的优点,因为得到广泛的推崇,很多过往的技术手段都慢慢转换为使用Web API来开发.而Web API通常使用的设计方式是RESTful(Representational State Transfer,表述性状态转移),它使用了典型的HTTP方法,诸如GET.POST.PUT和DELETE来对资源进行管理和交互. 这里列出设计RESTful API的10个最佳实践. 1.在API中使用名词,而不是动词. 在RESTful中,A…
作者好屌啊,我不懂的他全都懂. Authentication with AngularJS and a Node.js REST api 几个月前,我开始觉得 AngularJS 好像好牛逼的样子,于是我决定开始干它,并且录下来给你们看.BlogJS 就是第一发.   Blogjs 是个非常简单的 blog, 用 AngularJS,Node.js 和 MongoDB 写的. 你可以看看在线例子,点这里看前端,点这里看后台.用户名密码都是 demo . 然后你还可以从 github 上拿源码.…
Node.js是一个强大的平台,理想状态下一切都都可以用javascript写成.然而,你可能还会用到许多遗留的库和系统,这样的话使用c++编写Node.JS扩展会是一个不错的注意. 以下所有例子的源代码可在node扩展示例中找到 . 编写Node.js C + +扩展很大程度上就像是写V8的扩展: Node.js增加了一些接口,但大部分时间你都是在使原始的V8数据类型和方法,为了理解以下的代码,你必须首先阅读V8引擎嵌入指南. http://www.oschina.net/translate/…
收录待用,修改转载已取得腾讯云授权 原文:10 Best Practices for Writing Node.js REST APIs 我们会通过本文介绍下书写Node.js REST API的最佳实践,包括各个主题,像是命名路由.认证.黑盒测试以及对相关资源使用合适的缓存头. 对于Node.js来说最流行的一个用例就是用其来书写RESTful API.尽管如此,当我们使用监控工具来帮助用户排查问题时,我们总是能感受到在REST API上开发者们有很多的问题. 我希望这些最佳实践能够对你有所帮…
收录待用,修改转载已取得腾讯云授权 5. 对你的Node.js REST API进行黑盒测试 测试你的REST API最好的方法之一就是把它们当成黑盒对待. 黑盒测试是一种测试方法,通过这种方法无需知道应用内在的结构或者工作机制,就可以检测到其功能.因此依赖不会被mock或者stub,但是系统会被作为一个整体来测试. 译者注:mock 和 stub 都是测试的方法 有个可以帮你进行Node.js REST API进行黑盒测试的模块叫做supertest. 一个简单的测试用例,其使用测试运行器mo…
什么是REST架构? REST表示代表性状态传输.REST是一种基于Web标准的架构,并使用HTTP协议. 它都是围绕着资源,其中每一个组件是资源和一个资源是由一个共同的接口使用HTTP的标准方法获得.REST最初是由Roy Fielding在2000年推出. 一个REST服务器只是提供的资源和REST客户端访问和使用HTTP协议修改的资源.这里每个资源由URI标识的/全局标识.其余部分使用各个表示形式表示相同的文字,JSON和XML资源:但JSON是最流行的一种. HTTP 方法 以下四个HT…
Building Node.js REST API Servers with Express.js and Hapi Modern-day web developers use an architecture consisting of a thick client and a a thin back-end layer.如AngularJS,ReactJs, VueJS.用来建立厚厚的client. 另一方面,他们使用REST APIs建立thin back-end layer. a repr…
Node.js v6.11.2  Documentation(官方文档) Buffer Prior to the introduction of TypedArray in ECMAScript 2015 (ES6), the JavaScript language had no mechanism for reading or manipulating streams of binary data(二进制数据). The Buffer class was introduced as part…
Node.js是JavaScript基础上发展起来的语言,所以前端开发者应该天生就会一点.一般我们会用它来做CLI工具或者Web服务器,做Web服务器也有很多成熟的框架,比如Express和Koa.但是Express和Koa都是对Node.js原生API的封装,所以其实不借助任何框架,只用原生API我们也能写一个Web服务器出来.本文要讲的就是不借助框架,只用原生API怎么写一个Web服务器.因为在我的计划中,后面会写Express和Koa的源码解析,他们都是使用原生API来实现的.所以本文其实…