5分钟构建API接口服务 | python小知识
1. 什么是API
我们经常会使用一些API接口来完成特定的功能,比如查询天气的数据,下载股票的数据,亦或是调用ChatGPT模型的结构等等。
API全称是Application Programming Interface,即应用程序接口,它通常提供了一个功能函数,而这个功能函数的输入和输出是和调用方相互约定的。
从架构上来讲,API通常从客户端和服务端模型;客户端以数据形式向服务器发送请求,服务器使用该客户端输入来开始执行内部函数,并将输出数据返回到客户端。
所以我们要开发一个API接口,从设计上就需要明确:
- 你要提供什么样的功能
- 功能的输入是什么
- 功能的输出返回是什么
从技术上,要提供一个服务来接收请求和返回结果,通常是一个满足HTTP协议的HTTP接口,也可以是RPC接口。我们这里要讲的是HTTP接口
这也是API的本质。
2. 用Flask构建API
要实现一个API,我们要构建一个HTTP服务。HTTP(超文本传输协议)是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范,是一个典型的请求/响应模式的协议。
Flask是python中轻量的web框架,Flask的两个核心模块除了模板渲染之外就是请求响应处理,其中请求响应处理是由 Werkzeug(WSGI 工具库)完成,而模板渲染是由Jinja(模板渲染库)完成。
Flask因为轻量灵活,用来构建API接口十分合适。
2.1 Flask入门
安装Flask
pip install flask
我们看一个简单的例子:
from flask import Flask
app = Flask(__name__)
@app.route('/hello')
def hello():
return 'hello world'
if __name__ == '__main__':
app.run("0.0.0.0", debug=True, port=6006)
调用(假设上面的文件为hello.py):
python hello.py
此时,你调用http://127.0.0.1:6006/hello
就会返回hello world
。
上面是最简单的一个接口了,从上面我们可知Flask的工作机制:
Flask(__name__)
申明了一个服务appapp.run
来启动这个服务,包括服务的地址ip和端口@app.route
装饰器定义了接口访问的URL地址和方法(GET/POST)hello
的函数就是具体接收请求响应的函数功能模块,由@app.route
装饰
2.2 实用的FlaskAPI
上面的例子显然是不能满足一个完整的API的功能,首先我们要接收请求的数据,Flask是通过request
来接收请求数据,HTTP请求通常由两个方式GET和POST。
from flask import Flask
from flask import request
import json
import traceback
app = Flask(