Flask-RESTful 设计电影评分 API
随着互联网的快速发展,电影已经成为人们日常生活中不可或缺的一部分。为了方便用户获取电影信息,同时提供一种互动的方式,我们可以设计一个电影评分 API。本文将使用 Flask-RESTful 框架,结合 Python 语言,实现一个简单的电影评分 API,支持 GET 和 POST 请求。
环境准备
在开始编写代码之前,我们需要准备以下环境:
1. Python 3.x
2. Flask
3. Flask-RESTful
确保你已经安装了 Python 和 Flask。然后,使用以下命令安装 Flask-RESTful:
bash
pip install flask-restful
API 设计
在设计电影评分 API 时,我们需要考虑以下功能:
1. 获取电影列表
2. 获取电影详情
3. 添加电影评分
以下是 API 的基本路由设计:
- GET /movies:获取电影列表
- GET /movies/:获取电影详情
- POST /movies//ratings:添加电影评分
代码实现
下面是使用 Flask-RESTful 框架实现的 API 代码:
python
from flask import Flask, request
from flask_restful import Resource, Api, reqparse
app = Flask(__name__)
api = Api(app)
模拟电影数据库
movies = [
{'id': 1, 'title': 'The Shawshank Redemption', 'rating': 9.3},
{'id': 2, 'title': 'The Godfather', 'rating': 9.2},
{'id': 3, 'title': 'The Dark Knight', 'rating': 9.0}
]
获取电影列表
class MovieList(Resource):
def get(self):
return movies
获取电影详情
class Movie(Resource):
def get(self, id):
movie = next((m for m in movies if m['id'] == id), None)
if movie:
return movie
else:
return {'message': 'Movie not found'}, 404
添加电影评分
class MovieRating(Resource):
def post(self, id):
parser = reqparse.RequestParser()
parser.add_argument('rating', type=float, required=True, help='Rating cannot be blank')
args = parser.parse_args()
rating = args['rating']
for movie in movies:
if movie['id'] == id:
movie['rating'] = rating
return movie
return {'message': 'Movie not found'}, 404
添加路由
api.add_resource(MovieList, '/movies')
api.add_resource(Movie, '/movies/')
api.add_resource(MovieRating, '/movies//ratings')
if __name__ == '__main__':
app.run(debug=True)
测试 API
在终端中运行上述代码,启动 Flask 应用。然后,使用以下命令测试 API:
bash
curl http://127.0.0.1:5000/movies
这将返回电影列表。接下来,测试获取电影详情:
bash
curl http://127.0.0.1:5000/movies/1
测试添加电影评分:
bash
curl -X POST -d "rating=9.5" http://127.0.0.1:5000/movies/1/ratings
这将返回更新后的电影详情。
总结
本文介绍了如何使用 Flask-RESTful 框架和 Python 语言设计一个简单的电影评分 API。通过实现 GET 和 POST 请求,我们为用户提供了一种方便的方式来获取电影信息和添加电影评分。在实际应用中,可以根据需求扩展 API 功能,如添加用户认证、数据库存储等。
Comments NOTHING