《Building REST APIs with Flask》读完,如何构建RESTful API更高效?

摘要:一、 为什么读这本书? 之所以选择这本书其实是因为最近自己在梳理 JWT 的用法。自己曾参与过的一个项目虽然使用的是 Flask 开发,但是授权使用的 PyJWT,当时以为使用 PyJWT 是行业通用选择,就没有去过多了解。后面发现有人对
一、 为什么读这本书? 之所以选择这本书其实是因为最近自己在梳理 JWT 的用法。自己曾参与过的一个项目虽然使用的是 Flask 开发,但是授权使用的 PyJWT,当时以为使用 PyJWT 是行业通用选择,就没有去过多了解。后面发现有人对 PyJWT 进行了封装,造了一个 Flask-JWT-Extended,所以想了解下“在 Flask 项目中,选择Flask-JWT-Extended,还是 PyJWT?”,刚好这本书有提到,所以就打算读一读。 二、这本书写了什么? 从2025年6月25日至2025年6月30日,期间断断续续花了6天阅读完《Building REST APIs with Flask》。 该书介绍了两个项目:flask-mysql,author-manager,通过这两个项目介绍 Flask 的基本用法,开发 REST APIs 的流程。flask-mysql 介绍了如何在 Flask 项目中集成数据库。author-manager 介绍了注册登录功能,CRUD操作、项目部署。 当然,虽然看完了这本书,但也没找到“在Flask项目中,选择Flask-JWT-Extended,还是 PyJWT?”这个问题的答案,因为作者也没有说。 三、这本书特点 1.简短。 “简短”可能是这本书的唯一优点了,200多页,两个项目。遇到问题的时候,代码改起来不至于太困难。 2.问题很多。 p41, 一个一个判断需要修改的参数,这种风格不好,如果参数很多的时候就很麻烦。 p42, 代码中无异常处理。 @app.route('/authors/<id>', methods = ['DELETE']) def delete_author_by_id(id): get_author = Authors.query.get(id) db.session.delete(get_author) db.session.commit() return make_response("",204) p79, 日志的设置不是规范的做法,过于随便。 logging.basicConfig( stream=sys.stdout, format='%(asctime)s|%(levelname)s|%(filename)s:%(lineno)s|%(message)s', level=logging.DEBUG) p91,使用 JWT 进行认证时只有 access_token, 没有 refresh_token。 还有很多很多问题,这里就不一 一列举了。 四、这本书适合什么样的人? 鉴于书中问题较多,同时这本书是 2019 年写的,现在是 2025 年了,大部分内容已经过时了,所以不推荐阅读。 五、推荐指数 按照5 星的标准,本书推荐指数 1 颗星。 六、参考资料 1. 编程 (1)Kunal Relan: https://book.douban.com/subject/34825401/ (2)源码: https://github.com/Apress/building-rest-apis-with-flask 2. 英语 (1) Etymology Dictionary:https://www.etymonline.com (2) Cambridge Dictionary:https://dictionary.cambridge.org 欢迎搜索及关注:编程人(a_codists)