这两天看了《Flask Web开发》一书的第14章,关于 Flask RESTful Web服务的相关内容,有些地方还不太完全理解,这里只记录自己总结出来的一点感想,很有局限性,仅作记录和参考。

REST架构 的本质是将一切内容都当作资源对待,所以,针对不同的资源,后台应该用不同的路由进行管理,而其中的简单套路总结于此:

  • 资源管理动作的分类:

    • 查询单项/列表资源:列出该类/该项资源
    • 新建/编辑资源:创建/修改资源内容,可能需要提供相应权限
    • 查询关联资源: 多个类型的资源因业务相互关联,如:作者——文章——评论
  • 资源管理动作的路由代码编写套路:

    • 查询单项资源:

      1. 查询资源对象 get_or_404(id)
      2. return jsonify(资源.to_json())
      
    • 查询列表资源:

      1. 获取当前查询的页码 `page`
      2. 根据 `page` 查询当前页所对应的数据集
      3. 根据当前页位置指定前后页url
      4. return jsonify({资源列表, 前一页url, 后一页url, 数据记录总数})
      
    • 新建资源: 1. 根据请求发来的数据创建资源数据 2. 检查当前用户是否有操作权限 3. 存入数据库 4. return jsonify(资源.to_json()), 201, {资源url}

    • 编辑资源:

      1. 查询资源对象 get_or_404(id)
      2. 检查当前用户是否有操作权限
      3. 将修改写入数据库
      4. return jsonify(资源.to_json())
      
    • 查询关联资源:

      1. 查询关联关系中的主体资源对象 get_or_404(id)
      2. 获取当前查询的页码 `page`
      3. 根据 `page` 查询当前页所对应的数据集
      4. 根据当前页位置确定前后页url
      5. return jsonify({资源列表, 前一页url, 后一页url, 数据记录总数})
      

以上几种就是常见的Flask RESTful Web服务开发的基本套路。以后有遇到新的或需要修改的会逐步更新。