Python核心编程(第3版)
第2 部分 Web开发

第13章 Web服务

章节主张:Web 服务章展示的是真实世界接口能力:把远程能力当作模块化积木,组合成有业务意义的应用。

中文释读:股票报价、Twitter 等示例看起来很时代化,但底层训练的是 API 集成、认证、组合调用、结果清洗和面向场景的封装能力。

章节知识路线

  1. 13.1 简介
  2. 13.2 Yahoo!金融股票报价服务器
  3. 13.3 Twitter微博
  4. 13.4 练习

关键论点

  • 外部服务不是脚本玩具,而是能力供应商。
  • 组合示例说明接口之间要有数据承接。
  • 资源与在线资料提醒你生态变化很快,能力要抽象出来。

行动清单

  • 记录配额、认证与错误类型。
  • 设计内部数据模型承接 API 结果。
  • 为外部变更保留适配层。

源章节深读

13.1 简介

解决的问题:这一节解决的是“13.1 简介在真实应用里到底扮演什么角色”。

把 13.1 简介 放回本章上下文,它更像是 结构化数据交换与系统边界 的一个具体落点。

怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。

提醒:最常见的问题是只记住 13.1 简介 的 API 或步骤,却没搞清它的上下游依赖与边界条件。

原文线索

13.2 Yahoo!金融股票报价服务器

解决的问题:这一节解决的是“13.2 Yahoo!金融股票报价服务器在真实应用里到底扮演什么角色”。

第 13 章 Web 服务 531 本章将简要介绍如何使用当今可接触到的一些 Web 服务,如较老的 Yahoo!金融股票报价 服务器以及较新的 Twitter。

怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。

提醒:最常见的问题是只记住 13.2 Yahoo!金融股票报价服务器 的 API 或步骤,却没搞清它的上下游依赖与边界条件。

原文线索

第 13 章 Web 服务 531 本章将简要介绍如何使用当今可接触到的一些 Web 服务,如较老的 Yahoo!金融股票报价 服务器以及较新的 Twitter。 13.1 简介 网络上有许多 Web 服务和应用,分别提供不同的功能。 大部分较大的公司,如 Yahoo!、 Google、Twitter 和 Amazon,都会为这些服务提供应用编程接口(API)。

13.3 Twitter微博

解决的问题:这一节解决的是“13.3 Twitter微博在真实应用里到底扮演什么角色”。

534 第 2 部分 Web 开发 ------ ----- ------ ---- "YHOO" 16.56 -0.07 "-0.42%" "DELL" 16.31 -0.01 "-0.06%" "COST" 84.93 -0.29 "-0.34%" "ADBE" 29.02 +0.68 "+2.40%" "INTC" 24.98 -0.15 "-0.60%" 逐行解释 第 1~7 行 这个 Python 2 脚本使用 time.ctime()显示股票信息从 Yahoo!下载下来的时间点, urllib2.urlopen()连接到 Yahoo!的服务以获取股票数据。

怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。

提醒:最常见的问题是只记住 13.3 Twitter微博 的 API 或步骤,却没搞清它的上下游依赖与边界条件。

原文线索

534 第 2 部分 Web 开发 ------ ----- ------ ---- "YHOO" 16.56 -0.07 "-0.42%" "DELL" 16.31 -0.01 "-0.06%" "COST" 84.93 -0.29 "-0.34%" "ADBE" 29.02 +0.68 "+2.40%" "INTC" 24.98 -0.15 "-0.60%" 逐行解释 第 1~7 行 这个 Python 2 脚本使用 time.ctime()显示股票信息从 Yahoo!下载下来的时间点, urllib2.urlopen()连接到 Yahoo!的服务以获取股票数据。 接下来是股票代号的导入语句,以及 获取所有数据的固定 URL。 第 9~12 行 这一小块代码显示下载股票信息的时间点,并使用 urllib2.ulropen()获取请求的数据(如 果读过本书之前的版本,会注意到这里简化了输出代码,感谢之前眼尖的读者!

13.4 练习

解决的问题:这一节解决的是“13.4 练习在真实应用里到底扮演什么角色”。

548 第 2 部分 Web 开发 13.3.5 额外在线资源 Yahoo! Finance http://gummy-stuff.org/Yahoo-data.htm http://gummy-stuff.org/forex.htm Twitter http://dev.twitter.com/docs/twitter-libraries#python http://github.com/ryanmcgrath/twython http://tweepy.github.com 13.4 练习 Web 服务 13-1 Web 服务。

怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。

提醒:最常见的问题是只记住 13.4 练习 的 API 或步骤,却没搞清它的上下游依赖与边界条件。

原文线索

548 第 2 部分 Web 开发 13.3.5 额外在线资源 Yahoo! Finance http://gummy-stuff.org/Yahoo-data.htm http://gummy-stuff.org/forex.htm Twitter http://dev.twitter.com/docs/twitter-libraries#python http://github.com/ryanmcgrath/twython http://tweepy.github.com 13.4 练习 Web 服务 13-1 Web 服务。 使用自己的语言描述什么是 Web 服务。 在网上找到这样一些服务,并 描述其工作方式。

辨别题

为什么 API 集成最怕把示例代码直接放进正式系统?

本章图版学习路径

13.1 简介

API 组合应用