官术网_书友最值得收藏!

Chapter 1. Introducing hapi.js

hapi.js (commonly referred to as hapi) stands for HTTP API. It is a rich framework for building applications and services. It was originally designed for the rapid development of RESTful API services using JavaScript, but has since grown to be a full web application framework with out-of-the-box features for templating, input validation, authentication, caching, and more recently, support for real-time applications with web socket support.

The original philosophy that hapi was built around was increasing developer hapi-ness; the aim was to increase productivity by providing additional tools to help with development, but without getting in the way. It was also built with a security-first approach, meaning that the tools provided were developed with smart secure defaults, with the mindset of not giving the developers the ability to shoot themselves in the foot for not knowing some hidden configuration setting or implied design pattern.

hapi was created by the Mobile team at Walmart Labs, led by Eran Hammer (who created OAuth), to handle their traffic for events like Black Friday, one of the busiest days for online shopping in the US calendar.

hapi was born out of necessity; the Walmart team never intended to build a framework. They originally started with express, currently Node's most widely used framework. After hitting some limitations with express, and finding similar limitations in other frameworks, they finally discovered that it would be easier to create their own framework rather than hack an existing framework to meet their needs. Eran wrote a great post about this journey on his blog, http://hueniverse.com/2012/12/20/hapi-a-prologue; I encourage you to read it. Fortunately for us, hapi was born out of all this.

This chapter will be your introduction to hapi.js, and will cover the following topics:

  • Introducing Node.js—a prerequisite to learning hapi.js
  • A background on hapi.js
  • Creating our first hapi.js server
主站蜘蛛池模板: 长沙县| 丁青县| 长汀县| 建平县| 灵川县| 谷城县| 新沂市| 焦作市| 馆陶县| 东港市| 扎囊县| 松阳县| 敖汉旗| 汝城县| 呼图壁县| 黔西县| 苏尼特左旗| 清苑县| 北海市| 务川| 安丘市| 清河县| 东山县| 邓州市| 尚义县| 运城市| 沙洋县| 米林县| 五常市| 敦煌市| 红桥区| 阿克苏市| 岑巩县| 云安县| 吉木萨尔县| 苏尼特右旗| 宁德市| 二连浩特市| 襄汾县| 新乡市| 富阳市|