apidoc用于写http restful接口文档注意事项
来源:互联网 发布:ubuntu默认视频播放器 编辑:程序博客网 时间:2024/06/03 05:23
由于postman被墙了,用apidoc来写restful接口文档,并附上test case,感觉很不错。
在使用中,这个apidoc跟postman相比,还是有几点区别:
一、restful风格的url,最后不能是'/'结尾。
比如,消息列表的url,应该是:
http://127.0.0.1:8000/api/messages,GET
不能写成http://127.0.0.1:8000/api/messages/,GET
二、query参数,要支持如下风格:
http://127.0.0.1:8000/api/messages/list?page_index=&page_size=&is_read=¬ification_type=&set_read_flag=&warehouse_id=&message_status=&box_type=
这就是说,在实现url方法时,如果是传进来空值,就要自行添加一个default值。
page_index = param_utils.get_param_by_request(request.GET, "page_index", 1, int)
def get_param_by_request(params, param_name, default_val=None, _type=None):
try:
if param_name in params:
_val = params[param_name]
else:
_val = default_val
if _type:
_val = _type(_val)
return _val
except Exception as e:
return default_val
同时再说一个bug。
bug现象:
ValueError: invalid literal for int() with base 10: ''
这个话的意思是,对int变量赋值时出错,就是下面这段代码:
record.copy_status_ori = int(kwargs['status_ori'])
因为这个字段在model中定义为:IntegerField
copy_status_ori = models.IntegerField(choices=ORIGINAL_ORDER_STATUS,
verbose_name='订单原始状态(copy)',
null=True)
if 'status_ori' in kwargs:
# print('status_ori=', kwargs['status_ori'])
if kwargs['status_ori'] is not None and isinstance(kwargs['status_ori'], int):
record.copy_status_ori = int(kwargs['status_ori'])
在使用中,这个apidoc跟postman相比,还是有几点区别:
一、restful风格的url,最后不能是'/'结尾。
比如,消息列表的url,应该是:
http://127.0.0.1:8000/api/messages,GET
不能写成http://127.0.0.1:8000/api/messages/,GET
二、query参数,要支持如下风格:
http://127.0.0.1:8000/api/messages/list?page_index=&page_size=&is_read=¬ification_type=&set_read_flag=&warehouse_id=&message_status=&box_type=
这就是说,在实现url方法时,如果是传进来空值,就要自行添加一个default值。
page_index = param_utils.get_param_by_request(request.GET, "page_index", 1, int)
def get_param_by_request(params, param_name, default_val=None, _type=None):
try:
if param_name in params:
_val = params[param_name]
else:
_val = default_val
if _type:
_val = _type(_val)
return _val
except Exception as e:
return default_val
同时再说一个bug。
bug现象:
ValueError: invalid literal for int() with base 10: ''
这个话的意思是,对int变量赋值时出错,就是下面这段代码:
record.copy_status_ori = int(kwargs['status_ori'])
因为这个字段在model中定义为:IntegerField
copy_status_ori = models.IntegerField(choices=ORIGINAL_ORDER_STATUS,
verbose_name='订单原始状态(copy)',
null=True)
if 'status_ori' in kwargs:
# print('status_ori=', kwargs['status_ori'])
if kwargs['status_ori'] is not None and isinstance(kwargs['status_ori'], int):
record.copy_status_ori = int(kwargs['status_ori'])
record.copy_status_ori_value = find_name(int(kwargs['status_ori']), ORIGINAL_ORDER_STATUS)
阅读全文
0 0
- apidoc用于写http restful接口文档注意事项
- apidoc写php接口文档
- 使用apidoc生成restful-api文档:安装nodejs+npm+apidoc
- 使用apidoc生成接口文档
- 编写接口文档apidoc用法
- 使用apidoc 生成Restful web Api文档
- apidoc 生成Restful web Api文档
- apidoc 生成Restful web Api文档
- 基于php开发的RESTful ApiDoc文档
- 使用apidoc 生成Restful web Api文档
- 使用apidoc 生成Restful web Api文档
- apidoc接口文档自动生成工具
- 用apidoc 生成在线接口文档
- 利用apidoc维护api接口文档
- api 接口开发文档开发利器 --- apidoc
- 丢掉word,用apidoc来写文档
- apidoc 文档
- 用开源apidoc编写php接口文档,也可以编写其他语言apidoc安装使用
- 用通俗易懂的话说下hadoop是什么,能做什么
- PyQt的一个UI单元测试框架思路
- NSClient服务无法启动了,出现错误193
- mysql运算符
- Js toFixed()四舍五入BUG的解决方法
- apidoc用于写http restful接口文档注意事项
- 如何优化js代码
- DEBIAN安装teamviewer
- python-numpy数组拼接方法介绍
- mt2503[Input Method]允许多种语言输入法在不同语言环境下都能自由切换
- java基础---包
- 关于手游网络协议的简单分析
- 数据库的删除和更改操作
- centos6.5的安装