介绍
今天就跟大家聊聊有关restapi的设计细节和实施是什么样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
在RESTful API的设计中,我打算自定义一个请求头,把牌放进去以便向其他苍井空组件请求服务。
于是,把之前的代码稍微改成这样:
parser.add_argument (& # 39; auth-token& # 39;, type=str,帮助=& # 39;put 从而token 这是# 39;,位置=& # 39;头# 39;)
引用该值时,用法如下:
class TodoSimple(资源): ,,,def 得到(自我,todo_id): ,,,,,,,args =, parser.parse_args () ,,,,,,,if args (& # 39; auth-token& # 39;],==, & # 39; thisismytoken& # 39;: ,,,,,,,,,,,return {todo_id:行动计划(todo_id)} ,,,,,,,其他的: ,,,,,,,,,,,return {& # 39;错误# 39;:& # 39;token 错误# 39;},401 ,,,def 把(自我,todo_id): ,,,,,,,待办事项(todo_id),=, request.form[& # 39;数据# 39;】 ,,,,,,,return {todo_id: todos [todo_id]}
直接
args =, parser.parse_args ()
然后读取其中的值即可。
另外,之前的测试我只是简单地用- d指定“name=hochikong”操作getname资源,现在把它稍微改下。
class getname(资源): ,,,def 职位(自我): ,,,,,,,args =, parser.parse_args () ,,,,,,,name =, args(& # 39;名字# 39;】 ,,,,,,,# name =, {} ,,,,,,,#名称[& # 39;交流# 39;],=,args(& # 39;名字# 39;】 ,,,,,,,# name =, request.json.get(& # 39;名字# 39;) ,,,,,,,return {& # 39; yourame& # 39;:名称}
但是卷曲的请求则变成这样:
curl 小姐;-X POST -H & # 39; - type: application/JSON # 39;, -d & # 39; {“name":“hochikong"} & # 39;, http://localhost: 5000/getname
注意!:我发送的是JSON数据,所以要修改http头为application/JSON,另外:
& # 39; {“name":“hochikong"} & # 39;
JSON数据中的字符串要用双引号,否则会报错。而JSON数据外还需要套一个引号
我的完整代码:
__author__ =, & # 39; hochikong& # 39; 得到flask import 烧瓶,请求 得到flask.ext.restful import 资源,Api, reqparse app =,瓶(__name__) 时间=api Api(应用程序) todos =,{& # 39;任务# 39;:& # 39;get 从而list of 码头工人# 39;} 时间=parser reqparse.RequestParser () parser.add_argument(& # 39;名字# 39;,type=str,帮助=& # 39;get 从而名字# 39;),,,,,,,,,,,,,,,,,,,,,,,,,,,,#因为这句话“By 默认情况下,,,RequestParser tries 用parse values 得到flask.Request.values,,以及flask.Request.json。”, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#我们不需要在名字这个参数后加“=json位置”,不过加了也无妨 parser.add_argument (& # 39; auth-token& # 39;, type=str,帮助=& # 39;put 从而token 这是# 39;,位置=& # 39;头# 39;) class TodoSimple(资源): ,,,def 得到(自我,todo_id): ,,,,,,,args =, parser.parse_args () ,,,,,,,if args (& # 39; auth-token& # 39;],==, & # 39; thisismytoken& # 39;: ,,,,,,,,,,,return {todo_id:行动计划(todo_id)} ,,,,,,,其他的: ,,,,,,,,,,,return {& # 39;错误# 39;:& # 39;token 错误# 39;},401 ,,,def 把(自我,todo_id): ,,,,,,,待办事项(todo_id),=, request.form[& # 39;数据# 39;】 ,,,,,,,return {todo_id:行动计划(todo_id)} class GetName(资源): ,,,def 职位(自我): ,,,,,,,args =, parser.parse_args () null null null null null null null null null null null null null null null null null null null null null null null null nullrestapi的设计细节和实施是什么样的