restapi的设计细节和实施是什么样的

  介绍

今天就跟大家聊聊有关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
  null

restapi的设计细节和实施是什么样的