vlambda博客
学习文章列表

互联网幕后英雄之Web API设计与开发

前几天图灵作译者群在讨论《Web API的设计与开发》一书,我问:大家所在团队都是谁负责设计和开发API?


一位老师说:我负责,从UI到数据库,从买服务器到部署,从改BUG到客服....

一位老师说:我们这里是产品经理设计,开发实现...

一位老师说:架构师给API设计方案,开发人员开发...

一位老师说:CTO给API设计方案,开发人员实现...

一位老师说:这本书我看过,非常不错,所有后端都应该看看这本书...

一位老师说:这本书我看过,非常不错,所有开发人员都应该看看这本书...


因此,《Web API的设计与开发》是一本从产品到开发到运维都值得阅读的书。


虽然Web API无处不在,甚至被称为互联网的幕后英雄,但是,能把它的设计与开发搞清楚的技术人员并不是很多,眼看Web API越来越重要,今天为大家介绍的这本书就是教你解决这个问题的。


市面上相关书不多,这本记得收藏哦!



Web API 的背景
互联网幕后英雄之Web API设计与开发


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 API 技术在国内已流传甚广,但目前来看,当技术人员遇到设计、实施Web API 的具体问题时,依然有些无所适从,或者仅仅是照葫芦画瓢、凭直观经验进行决策,缺乏一定的章法和规范。关于Web API 的研究和讨论往往也只是停留在肤浅的感性认识甚至是口口相传的层面上。


本书作者水野贵明在同我国一衣带水的邻国日本也看到了类似的情况,于是根据自己多年从事Web 相关工作的经验,参考大量美国硅谷知名互联网公司公开的Web API 资料,编写了本书—Web API:The Good Parts 


熟悉的读者应该不难察觉,本书的书名无疑受到了大神级程序员Douglas Crockford的知名著作 JavaScript:The Good Parts 的启发,其实两本书也有一定的相似之处。


正如道格拉斯在 JavaScript:The Good Parts 一书中总结了使用JavaScript 时需要遵守的各个金科玉律,本书作者水野贵明同样在本书中总结了Web API 从设计到实施乃至安全性等方面的经验,无论是对Web API 刚刚入门的新人,还是对已具备多年经验的资深人士,本书都相当具有参考价值。


难能可贵的是,作者在编写本书时并没有局限于日本本土的界限,而是从一开始便将更多的目光放在了美国硅谷互联网公司的产品和服务上,列举了大量读者耳熟能详的Web API 案例,让人耳目一新。正如强调开放、共享、平等精神的互联网那样,Web API 的设计和实施也同样没有各项人为制定的强制标准和规范。


但作为工程实践,在经历了百花齐放、百家争鸣之后,Web API 也和众多互联网技术工程相似,开始渐渐有了自身的事实标准。认真学习并研究这些事实标准和已有案例,既能避免另起炉灶的重复建设,也能及时吸取前车之鉴,约束并规范自己的Web API,使之与时俱进。

互联网幕后英雄之Web API设计与开发

互联网幕后英雄之Web API设计与开发 


作者水野贵明

自由软件开发者兼技术书作译者。JavaScript:The Good Parts、Third-Party JavaScript、High Performance JavaScript、The Principles of Object-Oriented JavaScript 等图书的日文版译者,著有《Web应用程序测试方法》(合著)。


译者盛荣

曾就职于爱立信、Autodesk等公司,长期从事软件、互联网技术相关领域的研发、测试等工作。热爱技术,对IT相关的新闻、历史等有浓厚兴趣。

编辑推荐

1.Web API设计、开发与运维最佳实践!
2.实例丰富,分析了美国各大知名网站的API设计细节。
3.内容详实,易于理解,Web API新手必备!


什么是Web API?

API 是“Application Programming Interface”的缩写,是软件组件的外部接口。也就是说,某个软件集合体,人们能了解它的外部功能,但并不知道(也无需知道)其内部的运作细节,为了从外部调用该功能,需要指定该软件集合体的调用规范等信息,而这样的规范就是API。


简单来说,它就是一个Web 系统,通过访问URI 可以与服务器完成信息交互,或者获得存放在服务器的数据信息等,这样调用者通过程序进行访问后即可机械地使用这些数据。而本书中所指的Web API是“使用HTTP 协议通过网络调用的API”。



什么情况下使用Web API?

  • 需要Web Service但不需要SOAP

  • 需要在已有的WCF服务基础上建立non-soap-based http 服务

  • 只想发布一些简单的HTTP服务,不想使用相对复杂的WCF配置

  • 发布的服务可能会被宽带受限的设备访问

  • 希望使用开源框架,关键时刻可以自己调试或者定义框架 


书中内容概要

作者开篇第一章就为读者分析了Web API的研究现状,准确给出了Web API的定义。第二章中,作者介绍了Web API的请求方式,包括从客户端向服务器发送信息的方法以及接收信息的服务器端的端点(URI)的设计。第三章,作者介绍请求所返回的响应数据(Response Data)的结构及其相关设计思想。


第四章,作者剖析了HTTP协议规范,思考如何将该协议体现在Web API的设计中。第五章,围绕如何修改已发布的API 这一话题进行讨论。最后一章,告诉读者如何避免Web API遭到预设之外的非法访问并增强其安全性和稳定性。

 

小绿宝典除了总结Web API 从设计到实施乃至安全性等方面的经验之外,还列举了大量读者耳熟能详的Web API 案例。内容涉及了Web API 的概念、设计、实施、安全等各个主题。


在介绍每个主题时,作者并没有教条式地给出一条条生硬的“军规”来要求我们服从,而是通过对大量案例地深入剖析,最后总结出适用于Web API 各个方面的普遍性规律。让你在遇到设计、实施Web API 的具体问题时,不再感到无所适从。


读者怎么推荐这本书?

“书中总结了设计、开发和运维Web API时需要注意的地方,具体例子很多,非常容易理解。”


“不仅适合Web API的初学者阅读,即使是有一定经验的读者,在工作中困惑时翻翻此书,也一定有所收获。特别是讲安全的第6章,特别值得一读。”


“端点的设计、请求的形式、响应数据的设计等,能够学到很多具体的技巧。虽然是很薄的一本书,但实际工作中需要的信息都很好地涵盖到了。”


通过目录查看全书内容

目录

译者序 xi

前言  xv

第1章 什么是Web API  1

1.1 Web API的重要性  3

1.2 各种各样的API模式  8

1.3 应该通过API公开什么 12

1.4 设计优美的Web API的重要性 15

1.5 如何美化Web API  17

1.6 REST与Web API  18

1.7 作为目标对象的开发人员数量与API的设计思想 19

1.8 小结  20

 

第2章 端点的设计与请求的形式  21

2.1 设计通过API公开的功能  21

2.2 API端点的设计思想  24

2.3 HTTP方法和端点  31

2.4 API端点的设计  37

2.5 搜索与查询参数的设计  45

2.6 登录与OAuth 2.0  53

2.7 主机名和端点的共有部分  61

2.8 SSKDs与API的设计  63

2.9 HATEOAS和REST LEVEL3 API  64

2.10 小结  68

 

第3章 响应数据的设计  69

3.1 数据格式  69

3.2 使用JSONP  74

3.3 数据内部结构的思考方法  79

3.4 各个数据的格式  90

3.5 响应数据的设计  97

3.6 出错信息的表示  98

3.7 小结  104

 

第4章 最大程度地利用HTTP协议规范  105

4.1 使用HTTP协议规范的意义  105

4.2 正确使用状态码 107

4.3 缓存与HTTP协议规范  116

4.4 媒体类型的指定  127

4.5 同源策略和跨域资源共享  136

4.6 定义私有的HTTP首部  139

4.7 小结  141

 

第5章 开发方便更改设计的WebAPI  143

5.1 方便更改设计的重要性  143

5.2 通过版本信息来管理API  146

5.3 版本变更的方针  153

5.4 终止提供API  155

5.5 编排层 160

5.6 小结  162

 

第6章 开发牢固的Web API  163

6.1 让WebAPI变得安全 163

6.2 非法获取服务器端和客户端之间的信息  165

6.3 使用浏览器访问API时的问题  169

6.4 思考防范恶意访问的对策  180

6.5 同安全相关的HTTP首部  185

6.6 应对大规模访问的对策  191

6.7 小结  204

 

附录A 公开Web API的准备工作  205

A.1 提供API文档  205

A.2 提供沙盒API  206

A.3 API Console  207

A.4 提供SDK  209

附录B Web API确认清单


扫一扫,京东购

互联网幕后英雄之Web API设计与开发

福利

知道不少小伙伴对本书期待已久,那么接下来大家就说说你所认识的互联网幕后英雄 Web API 吧!

本期精选评论中挑选3位每人一本《Web API的设计与开发》!另外,根据后台时间先后,留言第59楼的读者将获得《Web API的设计与开发》一本(少于此留言数,空缺)。

截止日期7月7日14:00!

 

本周特价电子书

1.《Angular权威教程》

http://www.ituring.com.cn/book/1874


2.《React快速上手开发》

http://www.ituring.com.cn/book/1887


3.《你不知道的JavaScript(中卷)》

http://www.ituring.com.cn/book/1563


点击【阅读原文】京东购买《Web API的设计与开发》