Web API的设计与开发

Web API的设计与开发
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: ,
2017-05
版次: 01
ISBN: 9787115455338
定价: 52.00
装帧: 平装
开本: 16开
页数: 212页
正文语种: 简体中文
154人买过
  • 本书结合丰富的实例,详细讲解了Web API的设计、开发与运维相关的知识。第1章介绍Web API的概要;第2章详述端点的设计与请求的形式;第3章介绍响应数据的设计;第4章介绍如何充分利用HTTP协议规范;第5章介绍如何开发方便更改设计的Web API;第6章介绍如何开发牢固的Web API。 水野贵明(作者)
    1973年出生于东京。自由软件开发者兼技术书作译者。是JavaScript:The Good Parts、Third-Party JavaScript、 High Performance JavaScript、The Principles of Object-Oriented JavaScript等图书的日文版译者,著有《Web应用程序测试方法》(合著)。

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

    译者序 xi

    前言 xv

    第1章 什么是Web API 1
    1.1 Web API的重要性 3
    1.1.1 通过API才能使用的在线服务出现 5
    1.1.2 移动应用与API 7
    1.1.3 API的经济学 7
    1.2 各种各样的API模式 8
    1.2.1 将已发布的Web在线服务的数据或功能通过API公开 8
    1.2.2 将附加在其他网页上的微件公开 9
    1.2.3 构建现代Web应用 10
    1.2.4 开发智能手机应用 11
    1.2.5 开发社交游戏 11
    1.2.6 公司内部多个系统的集成 12
    1.3 应该通过API公开什么 12
    1.3.1 公开API是否会带来风险 13
    1.3.2 公开API能得到什么 14
    1.4 设计优美的Web API的重要性 15
    1.4.1 设计优美的Web API易于使用 15
    1.4.2 设计优美的Web API便于更改 16
    1.4.3 设计优美的Web API健壮性好 16
    1.4.4 设计优美的Web API不怕公之于众 16
    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.3.1 GET方法 32
    2.3.2 POST方法 33
    2.3.3 PUT方法 33
    2.3.4 DELETE方法 34
    2.3.5 PATCH方法 35
    2.4 API端点的设计 37
    2.4.1 访问资源的端点设计的注意事项 41
    2.4.2 注意所用的单词 43
    2.4.3 不使用空格及需要编码的字符 43
    2.4.4 使用连接符来连接多个单词 44
    2.5 搜索与查询参数的设计 45
    2.5.1 获取数据量和获取位置的查询参数 46
    2.5.2 使用相对位置存在的问题 47
    2.5.3 使用绝对位置来获取数据 48
    2.5.4 用于过滤的参数 49
    2.5.5 查询参数和路径的使用区别 52
    2.6 登录与OAuth 2.0 53
    2.6.1 access token的有效期和更新 58
    2.6.2 其他Grant Type 59
    2.7 主机名和端点的共有部分 61
    2.8 SSKDs与API的设计 63
    2.9 HATEOAS和REST LEVEL3 API 64
    2.9.1 REST LEVEL3 API的优点 67
    2.9.2 REST LEVEL3 API 67
    2.10 小结 68

    第3章 响应数据的设计 69
    3.1 数据格式 69
    3.2 使用JSONP 74
    3.2.1 支持JSONP的操作方法 75
    3.2.2 JSONP与错误处理 77
    3.3 数据内部结构的思考方法 79
    3.3.1 让用户来选择响应的内容 81
    3.3.2 封装是否必要 82
    3.3.3 数据是否应该扁平化 83
    3.3.4 序列与格式 85
    3.3.5 该如何返回序列的个数以及是否还有后续数据 88
    3.4 各个数据的格式 90
    3.4.1 各个数据的名称 90
    3.4.2 如何描述性别数据 92
    3.4.3 日期的格式 95
    3.4.4 大整数与JSON 96
    3.5 响应数据的设计 97
    3.6 出错信息的表示 98
    3.6.1 通过状态码来表示出错信息 98
    3.6.2 向客户端返回详细的出错信息 99
    3.6.3 如何填写详细的出错信息 101
    3.6.4 发生错误时防止返回HTML 102
    3.6.5 维护与状态码 102
    3.6.6 需要返回意义不明确的信息时 103
    3.7 小结 104

    第4章 最大程度地利用HTTP协议规范 105
    4.1 使用HTTP协议规范的意义 105
    4.2 正确使用状态码 107
    4.2.1 2字头状态码:成功 109
    4.2.2 3字头状态码:添加必要的处理 111
    4.2.3 当客户端请求发生问题时 113
    4.2.4 5字头状态码:当服务器端发生问题时 115
    4.3 缓存与HTTP协议规范 116
    4.3.1 过期模型 117
    4.3.2 验证模型 120
    4.3.3 启发式过期 122
    4.3.4 不希望实施缓存的情况 123
    4.3.5 使用Vary来指定缓存单位 123
    4.3.6 Cache-Control首部 125
    4.4 媒体类型的指定 127
    4.4.1 使用Content-Type指定媒体类型的必要性 129
    4.4.2 以x-开头的媒体类型 130
    4.4.3 自己定义媒体类型的情况 131
    4.4.4 使用JSON或XML来定义新的数据格式的情况 132
    4.4.5 媒体类型与安全性 133
    4.4.6 请求数据与媒体类型 134
    4.5 同源策略和跨域资源共享 136
    4.5.1 CORS基本的交互 137
    4.5.2 事先请求 138
    4.5.3 CORS与用户认证信息 139
    4.6 定义私有的HTTP首部 139
    4.7 小结 141


    第5章 开发方便更改设计的Web API 143
    5.1 方便更改设计的重要性 143
    5.1.1 公开发布的API 144
    5.1.2 面向移动应用的API 145
    5.1.3 Web服务中使用的API 145
    5.2 通过版本信息来管理API 146
    5.2.1 在URI中嵌入版本编号 147
    5.2.2 如何添加版本编号 149
    5.2.3 在查询字符串里加入版本信息 151
    5.2.4 通过媒体类型来指定版本信息 152
    5.2.5 应该采用什么方法 153
    5.3 版本变更的方针 153
    5.4 终止提供API 155
    5.4.1 案例学习:Twitter废除旧版本的API 156
    5.4.2 预先准备好停止服务时的规范 156
    5.4.3 在使用条款中写明支持期限 159
    5.5 编排层 160
    5.6 小结 162

    第6章 开发牢固的Web API 163
    6.1 让Web API变得安全 163
    6.2 非法获取服务器端和客户端之间的信息 165
    6.2.1 用HTTPS对HTTP通信实施加密 165
    6.2.2 使用HTTPS是否意味着100%安全 167
    6.3 使用浏览器访问API时的问题 169
    6.3.1 XSS 169
    6.3.2 XSRF 174
    6.3.3 JSON劫持 176
    6.4 思考防范恶意访问的对策 180
    6.4.1 篡改参数 181
    6.4.2 请求再次发送 183
    6.5 同安全相关的HTTP首部 185
    6.5.1 X-Content-Type-Options 185
    6.5.2 X-XSS-Protection 186
    6.5.3 X-Frame-Options 186
    6.5.4 Content-Security-Policy 187
    6.5.5 Strict-Transport-Security 187
    6.5.6 Public-Key-Pins 188
    6.5.7 Set-Cookie首部和安全性 189
    6.6 应对大规模访问的对策 191
    6.6.1 限制每个用户的访问 192
    6.6.2 限速的单位 194
    6.6.3 应对超出上限值的情况 195
    6.6.4 向用户告知访问限速的信息 198
    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确认清单 211
  • 内容简介:
    本书结合丰富的实例,详细讲解了Web API的设计、开发与运维相关的知识。第1章介绍Web API的概要;第2章详述端点的设计与请求的形式;第3章介绍响应数据的设计;第4章介绍如何充分利用HTTP协议规范;第5章介绍如何开发方便更改设计的Web API;第6章介绍如何开发牢固的Web API。
  • 作者简介:
    水野贵明(作者)
    1973年出生于东京。自由软件开发者兼技术书作译者。是JavaScript:The Good Parts、Third-Party JavaScript、 High Performance JavaScript、The Principles of Object-Oriented JavaScript等图书的日文版译者,著有《Web应用程序测试方法》(合著)。

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

    译者序 xi

    前言 xv

    第1章 什么是Web API 1
    1.1 Web API的重要性 3
    1.1.1 通过API才能使用的在线服务出现 5
    1.1.2 移动应用与API 7
    1.1.3 API的经济学 7
    1.2 各种各样的API模式 8
    1.2.1 将已发布的Web在线服务的数据或功能通过API公开 8
    1.2.2 将附加在其他网页上的微件公开 9
    1.2.3 构建现代Web应用 10
    1.2.4 开发智能手机应用 11
    1.2.5 开发社交游戏 11
    1.2.6 公司内部多个系统的集成 12
    1.3 应该通过API公开什么 12
    1.3.1 公开API是否会带来风险 13
    1.3.2 公开API能得到什么 14
    1.4 设计优美的Web API的重要性 15
    1.4.1 设计优美的Web API易于使用 15
    1.4.2 设计优美的Web API便于更改 16
    1.4.3 设计优美的Web API健壮性好 16
    1.4.4 设计优美的Web API不怕公之于众 16
    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.3.1 GET方法 32
    2.3.2 POST方法 33
    2.3.3 PUT方法 33
    2.3.4 DELETE方法 34
    2.3.5 PATCH方法 35
    2.4 API端点的设计 37
    2.4.1 访问资源的端点设计的注意事项 41
    2.4.2 注意所用的单词 43
    2.4.3 不使用空格及需要编码的字符 43
    2.4.4 使用连接符来连接多个单词 44
    2.5 搜索与查询参数的设计 45
    2.5.1 获取数据量和获取位置的查询参数 46
    2.5.2 使用相对位置存在的问题 47
    2.5.3 使用绝对位置来获取数据 48
    2.5.4 用于过滤的参数 49
    2.5.5 查询参数和路径的使用区别 52
    2.6 登录与OAuth 2.0 53
    2.6.1 access token的有效期和更新 58
    2.6.2 其他Grant Type 59
    2.7 主机名和端点的共有部分 61
    2.8 SSKDs与API的设计 63
    2.9 HATEOAS和REST LEVEL3 API 64
    2.9.1 REST LEVEL3 API的优点 67
    2.9.2 REST LEVEL3 API 67
    2.10 小结 68

    第3章 响应数据的设计 69
    3.1 数据格式 69
    3.2 使用JSONP 74
    3.2.1 支持JSONP的操作方法 75
    3.2.2 JSONP与错误处理 77
    3.3 数据内部结构的思考方法 79
    3.3.1 让用户来选择响应的内容 81
    3.3.2 封装是否必要 82
    3.3.3 数据是否应该扁平化 83
    3.3.4 序列与格式 85
    3.3.5 该如何返回序列的个数以及是否还有后续数据 88
    3.4 各个数据的格式 90
    3.4.1 各个数据的名称 90
    3.4.2 如何描述性别数据 92
    3.4.3 日期的格式 95
    3.4.4 大整数与JSON 96
    3.5 响应数据的设计 97
    3.6 出错信息的表示 98
    3.6.1 通过状态码来表示出错信息 98
    3.6.2 向客户端返回详细的出错信息 99
    3.6.3 如何填写详细的出错信息 101
    3.6.4 发生错误时防止返回HTML 102
    3.6.5 维护与状态码 102
    3.6.6 需要返回意义不明确的信息时 103
    3.7 小结 104

    第4章 最大程度地利用HTTP协议规范 105
    4.1 使用HTTP协议规范的意义 105
    4.2 正确使用状态码 107
    4.2.1 2字头状态码:成功 109
    4.2.2 3字头状态码:添加必要的处理 111
    4.2.3 当客户端请求发生问题时 113
    4.2.4 5字头状态码:当服务器端发生问题时 115
    4.3 缓存与HTTP协议规范 116
    4.3.1 过期模型 117
    4.3.2 验证模型 120
    4.3.3 启发式过期 122
    4.3.4 不希望实施缓存的情况 123
    4.3.5 使用Vary来指定缓存单位 123
    4.3.6 Cache-Control首部 125
    4.4 媒体类型的指定 127
    4.4.1 使用Content-Type指定媒体类型的必要性 129
    4.4.2 以x-开头的媒体类型 130
    4.4.3 自己定义媒体类型的情况 131
    4.4.4 使用JSON或XML来定义新的数据格式的情况 132
    4.4.5 媒体类型与安全性 133
    4.4.6 请求数据与媒体类型 134
    4.5 同源策略和跨域资源共享 136
    4.5.1 CORS基本的交互 137
    4.5.2 事先请求 138
    4.5.3 CORS与用户认证信息 139
    4.6 定义私有的HTTP首部 139
    4.7 小结 141


    第5章 开发方便更改设计的Web API 143
    5.1 方便更改设计的重要性 143
    5.1.1 公开发布的API 144
    5.1.2 面向移动应用的API 145
    5.1.3 Web服务中使用的API 145
    5.2 通过版本信息来管理API 146
    5.2.1 在URI中嵌入版本编号 147
    5.2.2 如何添加版本编号 149
    5.2.3 在查询字符串里加入版本信息 151
    5.2.4 通过媒体类型来指定版本信息 152
    5.2.5 应该采用什么方法 153
    5.3 版本变更的方针 153
    5.4 终止提供API 155
    5.4.1 案例学习:Twitter废除旧版本的API 156
    5.4.2 预先准备好停止服务时的规范 156
    5.4.3 在使用条款中写明支持期限 159
    5.5 编排层 160
    5.6 小结 162

    第6章 开发牢固的Web API 163
    6.1 让Web API变得安全 163
    6.2 非法获取服务器端和客户端之间的信息 165
    6.2.1 用HTTPS对HTTP通信实施加密 165
    6.2.2 使用HTTPS是否意味着100%安全 167
    6.3 使用浏览器访问API时的问题 169
    6.3.1 XSS 169
    6.3.2 XSRF 174
    6.3.3 JSON劫持 176
    6.4 思考防范恶意访问的对策 180
    6.4.1 篡改参数 181
    6.4.2 请求再次发送 183
    6.5 同安全相关的HTTP首部 185
    6.5.1 X-Content-Type-Options 185
    6.5.2 X-XSS-Protection 186
    6.5.3 X-Frame-Options 186
    6.5.4 Content-Security-Policy 187
    6.5.5 Strict-Transport-Security 187
    6.5.6 Public-Key-Pins 188
    6.5.7 Set-Cookie首部和安全性 189
    6.6 应对大规模访问的对策 191
    6.6.1 限制每个用户的访问 192
    6.6.2 限速的单位 194
    6.6.3 应对超出上限值的情况 195
    6.6.4 向用户告知访问限速的信息 198
    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确认清单 211
查看详情
12
系列丛书 / 更多
Web API的设计与开发
机器学习实战
[美]Peter Harrington 著;李锐、李鹏、曲亚东 译
Web API的设计与开发
图灵程序设计丛书:Python基础教程
[挪威]Magnus Lie Hetland 著;司维、曾军崴、谭颖华 译
Web API的设计与开发
JavaScript高级程序设计(第3版)
[美]Nicholas C.Zakas 著;李松峰、曹力 译
Web API的设计与开发
Python编程:从入门到实践
[美]埃里克·马瑟斯(Eric Matthes) 著;袁国忠 译
Web API的设计与开发
R语言实战(第2版)
[美]卡巴科弗(Robert I. Kabacoff) 著;王小宁、刘撷芯、黄俊文 译
Web API的设计与开发
大数据:互联网大规模数据挖掘与分布式处理
[美]Anand、[美]Jeffrey David Ullman 著;王斌 译
Web API的设计与开发
算法(第4版)
[美]Robert、[美]Kevin Wayne 著;谢路云 译
Web API的设计与开发
Spark快速大数据分析
[美]卡劳(Holden Karau)、[美]肯维尼斯科(Andy Konwinski)、[美]温德尔(Patrick Wendell)、[加拿大]扎哈里亚(Matei Zaharia) 著;王道远 译
Web API的设计与开发
MySQL必知必会
[英]福塔(Ben Forta) 著;刘晓霞、钟鸣 译
Web API的设计与开发
图解HTTP
[日]上野·宣 著;于均良 译
Web API的设计与开发
Objective-C基础教程 第2版
[美]Scott、[美]Waqar、[美]Mark Dalrymple 著;周庆成 译
Web API的设计与开发
算法图解
袁国忠 译
相关图书 / 更多
Web API的设计与开发
Web前端开发与项目实践
魏慧;胡沁涵
Web API的设计与开发
Web前端设计
王珊
Web API的设计与开发
Web应用开发技术(微课版)
白磊
Web API的设计与开发
Web 3.0:打造良好体验的品牌方法论
施襄 著
Web API的设计与开发
Web API设计原则通过API和微服务实现价值交付
(美)詹姆斯·希金博特姆(James Higginbotham)
Web API的设计与开发
Weir & Abrahams 人体解剖影像图谱(第6版)
袁慧书 著
Web API的设计与开发
Web3.0:数字时代赋能与变革
贾新峰
Web API的设计与开发
Web3.0:构建数字经济新未来
翟振林
Web API的设计与开发
Web前端开发基础
韩少云、王春梅 著
Web API的设计与开发
Web3.0时代:创新思维赋能数字未来
徐俊
Web API的设计与开发
Web前端开发实战
郭凯;孔繁玉;张有宽
Web API的设计与开发
Web前端设计基础(第2版)
李立威;薛晓霞;王晓红;李丹丹;王艳娥