标签:服务 with add restapi class data containe 列表 状态
为移动端编写接口
编写路由
浏览器 (客户端一种)CS/BS
B是一个C子集
服务器返回数据
网页数据 html
浏览器
JSON数据
ajax javascript发送请求的一种方式
requests Python的一个请求库
各种平台有各种平台的请求方式
为移动端编写接口非常简单
接口地址是什么
/xxx/yyy/zzz/
见名知意
接口需要什么参数,返回什么格式的数据
参数根据业务场景
JSON数据
软件架构设计思想
CS,客户端和服务端这种架构模型中
表现层状态转换
主语 (资源)
URI 每个URI代表一种资源
资源展现给我们的形式就叫做表现层
通过HTTP的请求谓词来实现表现层转换
重要概念
URI
HTTP请求谓词
JSON
轻量级的RESTApi插件
marshal_with
装饰器
参数接收模板
将返回的数据进行格式化
数据内容如果比模板多,结果会自动删除多余的数据
数据内容如果比模板少,结果会自动进行填充
核心
请求转换 输入
输出格式化 输出
blog_fields = { "id": fields.Integer, "title": fields.String, "content": fields.String, } return_fields = { "msg": fields.String, "status": fields.Integer, "data": fields.Nested(blog_fields) } parse = reqparse.RequestParser() parse.add_argument("title", required=True, help="请填写标题") parse.add_argument("content", required=True, help="请填写内容") class BlogsResource(Resource): @marshal_with(return_fields) def get(self): blogs = Blog.query.all() data = { "msg": "OK", "status": 200, "data": blogs } return data
#或者不加装饰器,直接返回 return marshal(data, return_fields)
输入
reqparse.RequestParser()
对参数进行处理
参数获取
获取校验
参数名
类型限制 type
错误提示 help
是否必须 required
隐私别名 dest
参数来源 location
参数数量,多个参数值 action
输出
将对象转换成JSON(dict)
marshal_with 装饰
marshal 函数
将数据和模板传递进来
模板
字典
key 就是json中key
value 就是fileds.XXX
fields
attribute指定映射关系
默认格式化的时候,会根据字典中的key去数据查找
通过指定 attribute之后,会根据 attribute去查找
default 默认值
fields.Nested
嵌套字段
对象嵌套
可以自动处理单个对象和列表对象
fields.List
解决列表型数据
from flask_restful import reqparse parse = reqparse.RequestParser() parse.add_argument("username", required=True, type=str, help="username can‘t be blank") parse.add_argument("password", required=True, type=str, help="password can‘t be blank") parse.add_argument("con_password", type=str) parse.add_argument("action", required=True, type=str, help="please supply action")
#attribute 为字段名, 前面的内容为展示名, 旨在不行让别人看到数据库中的字段名 student_fields = { "name": fields.String(attribute="s_name"), "s_age": fields.Integer, "hehe": fields.String(default=""), "hehe_time": fields.Integer(default=3) }
标签:服务 with add restapi class data containe 列表 状态
原文地址:https://www.cnblogs.com/zbcdamao/p/10919488.html