译者序

20 世纪90 年代初,Web 技术的雏形发轫于欧洲核子研究组织(CERN),并在该研究组织中诞生了首个网站服务器(CERN httpd)。受此鼓舞,不久之后位于美国伊利诺伊大学厄巴纳- 香槟分校的美国国家超级计算机应用中心(NSCA)也于1993 年成功开发了NSCA httpd(现在赫赫有名的Apache 前身)服务器。伴随着浏览器技术的发展,Web 应用和互联网开始渐渐进入人们的视野和日常生活,徐徐拉开了PC 时代向互联网时代过渡的序幕。

在接下来的岁月里,Web 应用日益丰富,互联网产业高速发展,使得Web 应用间的通信、移动端应用和服务器端间的通信等变得举足轻重,受关注程度也越来越高。一时间在众多科技公司的推动下,SOA 架构、CORBRA、SOAP、Restful、RPC 等各种跨进程、跨应用的交互技术等相关概念层出不穷,让人眼花缭乱、目不暇接。与擅长企业级计算及PC 单机系统的传统IT 科技公司相比,新兴的互联网公司在技术选型时更关注敏捷、高效和开源。因此,基于HTTP/HTTPS 协议,以JSON 作为数据传输格式的Web API 技术得到了广泛的发展和应用,逐步成为了业界跨进程、跨应用交互的不二之选。

虽然Web API 技术在国内已流传甚广,但目前来看,当技术人员遇到设计、实施Web API 的具体问题时,依然有些无所适从,或者仅仅是照葫芦画瓢、凭直观经验进行决策,缺乏一定的章法和规范。关于Web API 的研究和讨论往往也只是停留在肤浅的感性认识甚至是口口相传的层面上。本书作者水野贵明在同我国一衣带水的邻国日本也看到了类似的情况,于是根据自己多年从事Web 相关工作的经验,参考大量美国硅谷知名互联网公司公开的Web API 资料,编写了本书—Web API:The Good Parts ①。熟悉的读者应该不难察觉,本书的书名无疑受到了大神级程序员道格拉斯•克罗克福德(Douglas Crockford)的知名著作JavaScript:The GoodParts ② 的启发,其实两本书也有一定的相似之处。正如道格拉斯在JavaScript:TheGood Parts 一书中总结了使用JavaScript 时需要遵守的各个金科玉律,本书作者水野贵明同样在本书中总结了Web API 从设计到实施乃至安全性等方面的经验,无论是对Web API 刚刚入门的新人,还是对已具备多年经验的资深人士,本书都相当具有参考价值。难能可贵的是,作者在编写本书时并没有局限于日本本土的界限,而是从一开始便将更多的目光放在了美国硅谷互联网公司的产品和服务上,列举了大量读者耳熟能详的Web API 案例,让人耳目一新。正如强调开放、共享、平等精神的互联网那样,Web API 的设计和实施也同样没有各项人为制定的强制标准和规范。但作为工程实践,在经历了百花齐放、百家争鸣之后,Web API 也和众多互联网技术工程相似,开始渐渐有了自身的事实标准。认真学习并研究这些事实标准和已有案例,既能避免另起炉灶的重复建设,也能及时吸取前车之鉴,约束并规范自己的Web API,使之与时俱进。

① Web API:The Good Parts 是原版日文书的书名。—译者注
② 中文版书名为《JavaScript 语言精粹》。本书作者水野贵明也是JavaScript:The Good Parts 日文版的译者。—译者注

互联网的发展、Web 应用的整合、移动端的繁荣都离不开Web API 这一幕后英雄的鼎力相助,Web API 作为Web 技术的细分领域,并不能被高校计算机教材体系所涵盖,而本书的出现也恰好填补了这一空白。本书内容涉及了Web API 的概念、设计、实施、安全等各个主题,在介绍每个主题时,作者并没有教条式地给出一条条生硬的“军规”来要求我们服从,而是通过列举大量案例并对它们进行深入剖析,最后总结出适用于Web API 各个方面的普遍性规律。通过阅读本书,读者可以在短时间内迅速获悉在设计和实施Web API 时会遇到的各种问题,并根据作者给出的提示,“领悟”出称心如意的答案。尤其是书中给出的众多实实在在的知名互联网服务所用到的Web API 范例和相关剖析,可以让读者对Web API 有更深入的认识。因此本书不仅适合从事互联网相关工作的技术人员,对想了解技术细节的产品经理、运维人员而言,也具备一定的参考价值。

回顾国内,我国互联网行业的发展也同样如日中天,百度、阿里、腾讯等知名互联网公司也早已设计和发布了大量的Web API,协同庞大的用户群体,毋庸置疑成为了世界互联网产业的重要组成部分。令人感到惋惜的是,由于文化、地缘等因素,本书作者未能在书中提及国内互联网公司的Web API 案例。译者在此也殷切希望国内能有类似的出版物可以填补该项空白,见证我国互联网发展的黄金时期。

本书从翻译至出版历时较长,加之全书行文颇为严谨,原书的大量语句都需要译者反复斟酌,方能了解其确切含义。译者在翻译本书时离不开妻女的支持以及图灵公司各位编辑的帮助,在此一并表示感谢!另外,由于时间和精力有限,书中难免有些疏漏,望请各位读者予以指正,不甚感激!

盛 荣

2017 年3 月

目录

  • 译者序
  • 前言
  • 第1章 什么是Web API
  • 第2章 端点的设计与请求的形式
  • 第3章 响应数据的设计
  • 第4章 最大程度地利用HTTP协议规范
  • 第5章 开发方便更改设计的Web API
  • 第6章 开发牢固的Web API 
  • 附录A 公开Web API的准备工作
  • 附录B Web API确认清单