显示目录
正在从 Google Fonts 加载字体
如果你长时间无法加载字体,则说明你的网络连接或者 DNS 可能有问题
警告:该文档是从旧文档树中经过简单整理直接发布的,由于当前文档缺乏维护,因此对于当前开源版本主线 NSWA Ranga 可能少部分内容有所过时。如果你发现问题,请前往bugtracer提交错误报告。

NSWA Ranga 数据交换协议

数据交换协议是纯文本的

为何不采用返回 JSON 的 REST API ?

或许对某些客户端来说使用这些技术可以节省成本,但是 NSWA Ranga 的服务器和客户端充斥大量 Shell 脚本,尤其是服务端为了照顾小闪存设备不方面安装像 jshon 等 shell 脚本 json 解析器。因此 NSWA Ranga 使用非常朴实的纯文本。

数据交换协议类似于 HTTP/1.1,它具有一个头部(header)和剩余的载荷(payload)

key: value\n
key: value\n
key: value\n
\n
payload

和 HTTP 协议不同之处在于,NSWA Ranga 数据交换协议没有专门的协议版本而倾向于使用 key-value 对进行自我描述,NSWA Ranga 数据交换协议使用\nUNIX 换行符而不是 HTTP 的\r\nDOS 换行符。

数据交换协议头部必须使用 UTF-8 编码。除非存在content-encodingcontent-type头部指明,否则文本格式的 payload 必须使用 UTF-8 编码。实现可以不实现其他编码支持。

头部字段

只有code是必须字段,其他字段均为可选字段

以下字段被保留并且必须不出现,实现可以假定这些字段不会出现

code

操作的状态吗。请参考命令行工具手册中的“NSWA Ranga 系统错误代码”节。

客户端必须检查此状态码。并应该在非 0 状态码时显示相应的错误信息。

error-origin

指定错误的起源

content-type

指示 payload 的类型,并可能影响客户端的后续操作。

disp-section

content-typedispTargetsList指明 section 类型,例如ranga-cli config中 section 为config

token-meta

Token 的元数据,每条以;分割。

v1;ascii64;octet

v1 - 版本 1

ascii40 - Token 由 40 个 ASCII 字符组成

ascii64 - Token 由 64 个 ASCII 字符组成

octet - 使用 8 位字节存储 ASCII 数据,否则为 7 位字节

实现应该检查此字段,如果实现不检查此字段,则必须将 Token 视为 Blob 使用。

target-notfount

为 true 表明 payload 是执行像ranga-cli config这样带有子命令(目标)的命令,但是目标不存在