Skip to main content

用于 rspmsg 的 python 模块

项目描述

# 它是什么?

一个带有简化和修改的python rspmsg 模块。


# 注意:
python版本:>=3.6

(对于python2.7版本,使用rspmsg_version <0.9,例如:https://github.com/darkdarkfruit/rspmsg/releases/tag/v_0.7.1)


#rspmsg规范

|--- -----+--------+-----------+------------+----------- -+------------------------------------------------ --------|
| 领域 | 类型 | 必需的?| 可选的?| 价值 | 含义 |
|--------+--------+-----------+------------+------- -----+-------------------------------------------- ------------|
| 状态 | 字符串 | * | | “S”或“F” | 响应成功了吗?|
| 代码 | 任何| | * | | 应用程序逻辑代码(通常为整数) |
| 数据 | 任何| | * | | 响应的数据(有效负载) |
| 描述 | 任何| | * | | 描述:通常是帮助信息 |
| 元 | 任何| | * | | 元信息。例如:分布式环境中的服务器/ips 链。|
| | | | | | |
|--------+--------+-----------+------------+------- -----+-------------------------------------------- ------------|

* 字段:状态始终处于状态:“S”或“F”(代表“成功”、“失败”),没有第 3 种状态。

##决定服务器端响应的消息类型

####我们什么时候将消息设置为成功或失败?它因人而异。这里有一些建议。
* 如果服务器现在可以响应对应的资源,我们应该将消息标记为“S”(成功)消息。
* 如果服务器现在可以 **NOT** 响应对应资源,我们应该在设置有意义的代码时将消息标记为“F”(FAILED)消息。
* eg1:

rspmsg_successful = {
status : "S",
...
}

* eg2:

# 如果我们要返回响应消息告诉客户端:
# 1. 调试信息:消息已流向节点: ["192.168.1.6", "192.168.1.7"]
# 2. 请等待 5 秒重试。
# 我们可能会响应如下消息:
rspmsg_failed = {
status : "F",
code : 100,
data : {
seconds: 5
},
desc : "Server is busy, please wait 5 seconds to continue",
meta : {
nodes: ["192.168.1.6", "192.168.1.7"]
}




# 安装:
* pip install rspmsg 或 (pip3 install rspmsg) 或 * 下载tarbal ,

压缩,然后运行“python setup.py install” usr/local/bin/pytest > pytest --version > 这是 pytest 版本 3.3.2,从 /usr/local/lib/python3.6/site-packages/pytest.py > > pytest rspmsg/导入# API: (只有 1 个类和 2 个函数) * 类 * 消息 * 函数: * make_successful_message * make_failed_message # FAQ





















* 为什么要用“S”和“F”来代表“SUCCESSFUL”和“FAILED”?1或0,或真或假怎么样。


1.“S”和“F”清晰有表象。
2. 1 还是 0?在很多编程语言中,1代表真,0代表假;而在 linux 返回码中,
传统上,0 代表成功代码,非 0(例如:1)代表错误代码。
3.是真是假?在交互式环境中,我们可能会将布尔值:(true, false) 与字符串值
("true", "false") 混淆,这将使我们在大型项目中感到悲惨。

# 用法:(示例)


Python 3.6.2(默认,2017 年 8 月 10 日,10:07:10)
键入“版权”、“信用”或“许可证”
IPython 6.1.0——增强的交互式 Python。类型 '?' 求助。

在 [1]:导入 rspmsg
...:

在 [2]:rspmsg.__version__
...:
输出 [2]:'0.6.0'

在 [3]:msg = rspmsg.make_successful_message(code=0, data= {'payload' : 'yes'})
...:

In [4]: msg
Out[4]:
{'code': 0,
'data': {'payload': 'yes'},
'desc':无,
'meta':无,
'status':'S'}

In [5]:msg.dumps()
Out[5]:'{"status":"S", "code": 0, "data" : {"payload": "yes"}, "desc": null,


Out[6]: '{"status": "S", "code": 0, "data": {"payload": "yes"}}'

In [7]: msg_failed = rspmsg.make_failed_message()
.. .:

In [8]: msg_failed
Out[8]: {'code': None, 'data': None, 'desc': None, 'meta': None, 'status': 'F'}

In [9] : msg_failed.dumps()
Out[9]: '{"status": "F", "code": null, "data": null, "desc": null, "meta": null}'

In [10] : msg_failed.dumps(skip_none=True)
Out[10]: '{"status": "F"}'

In [11]: msg_loaded = rspmsg.Message.loads(msg.dumps())
...:

In [ 12]:msg_loaded
Out[12]:
{'code': 0,
'data': {'payload': 'yes'},
'desc': None,
'meta': None,
“状态”:“S”}

在 [13]:msg_loaded.data = 0

在 [14]:msg_loaded = rspmsg.Message.loads(msg.dumps())
...:

在 [15]:msg_loaded
Out[15 ]:
{'code': 0,
'data': {'payload': 'yes'},
'desc': None,
'meta': None,
'status': 'S'}

In [16]: msg_loaded。 dumps()
Out[16]: '{"status": "S", "code": 0, "data": {"payload": "yes"}, "desc": null, "meta": null} '

在 [17]: msg_loaded.dumps(skip_none=True)
Out[17]: '{"status": "S", "code": 0, "data":{"payload": "yes"}}'

在 [18] 中:rspmsg.loads(json.dumps({'status' : 'S', 'code' : 0, 'data' : {'payload' : 'yes '}}))
输出[18]:
{'code':0,
'data':{'payload':'yes'},
'desc':无,
'meta':无,
'status':'S'}

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

rspmsg-0.6.3.tar.gz (6.3 kB 查看哈希

已上传 source