Python 将Web服务定义为函数

Python 将Web服务定义为函数,下面介绍一个基于REST的Web服务,它可以切分源数据,并提供JSON、XML或CSV格式文件的下载。我们将提供一个完全兼容WSGI的封装器。负责执行应用程序实际工作的函数不必严格遵循WSGI标准。

我们会使用一个具有4个子集的简单数据集:安斯库姆四重奏。前面介绍过读取和解析这些数据的方法。它是一个小型数据集,但可以用来展示基于REST的Web服务的基本原理。

该应用程序将分为两层:属于简单WSGI应用程序的Web层,和使用了更典型的函数式编程技术的数据服务层。首先介绍Web层,这样之后就可以专注于提供有意义结果的函数式方法了。

需要为该Web服务提供以下两种信息。

  • 所需的四重奏:这是一个切片操作,其思想是通过过滤和提取有意义的子集来分割信息。
  • 所需的输出格式。

通常通过请求路径来选取数据。可以请求/anscombe/I//anscombe/II/通过四重奏选取特定数据集。其思想是用URL来定义资源,并且没有任何理由来改变URL。在这种情况下,数据集选取器将不依赖日期或某些组织化的批准状态以及其他外部因素。URL是不包含时间的绝对路径。

输出格式不作为顶层URL的一部分,它只是一个序列化格式,而不是数据本身。在某些情况下,格式是通过HTTP的Accept报头来请求的。这在浏览器中很难使用,但是在使用了RESTful API的应用程序中却很容易使用。从浏览器提取数据时,通常通过查询字符串来指定输出格式。我们将在路径末尾使用?form=json方法来指定JSON输出格式。

可以使用如下所示的URL:

http://localhost:8080/anscombe/III/?form=csv

这将请求以CSV格式下载第3个数据集。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程