@a-mehrabi/aranode-protobuf-parser 中文文档教程
Proto PARSER Module
aranode 流引擎的原型解析器实现。
Table of Contents
Installation
要在您的 aranode 项目中安装此模块, 你只需要使用以下命令添加包:
$ yarn add @a-mehrabi/aranode-proto-parser
之后,当你想使用它时, 您必须将其包含在自定义模块中,如下所示:
path: .env
ARANODE_CUSTOM_MODULES=@a-mehrabi/aranode-proto-parser
Usage
要使用 proto 编码器或解码器,您需要使用编码器或解码器相关描述:
- proto parser config config description (protoParserConfig)
- proto encoder flow description (protoEncoder)
- proto decoder flow description (protoDecoder)
proto parser config
Proto parser config description使您能够定义 proto 解析器的配置,包括 includePaths、protoFilePath 和 keepCase 配置。
您不在此配置中定义原型编码器和解码器的配置。
version: 1
kind: config
name: proto-parser
config:
protoParser:
includePaths:
- 'protos'
protoFilePath: 'awesome.proto'
keepCase: false
proto encoder
proto encoder flow description 使您能够将proto encoder定义为流节点,包括protoPath等。
proto 编码器,将 javascript 文字对象编码到 proto 缓冲区。
version: 1
kind: flow
name: greeter-flow
entryPoint: start
flow:
start:
transform:
path: 'dist/get-payload-transformer.js'
nextNode: initProtoEncoder
initProtoEncoder:
protoEncoder:
protoParser: proto-parser
protoPath: 'awesomepackage.AwesomeMessage'
nextNode: checkPayload
checkPayload:
transform:
path: 'dist/check-payload-transformer.js'
nextNode: response
response:
port:
name: greet-in-port
type: inbound
response: true
end: true
terminal: true
proto decoder
proto 解码器流描述使您能够将 proto 解码器定义为流节点。
proto 解码器,将 proto 缓冲区解码为 javascript 文字对象。
version: 1
kind: flow
name: greeter-flow
entryPoint: start
flow:
start:
entry: true
transform:
path: 'dist/get-payload-transformer.js'
nextNode: initProtoEncoder
initProtoEncoder:
protoEncoder:
protoParser: proto-parser
protoPath: 'awesomepackage.AwesomeMessage'
nextNode: initProtoDecoder
initProtoDecoder:
protoDecoder:
protoParser: proto-parser
protoPath: 'awesomepackage.AwesomeMessage'
defaults: true
arrays: true
objects: true
oneofs: true
nextNode: checkPayload
checkPayload:
transform:
path: 'dist/check-payload-transformer.js'
nextNode: response
response:
port:
name: greet-in-port
type: inbound
response: true
end: true
terminal: true
API
protoParserConfig
类型:配置描述
选项:
includePaths (string[]), 需要
的包含原型文件的目录和子目录
protoPath (string), 需要的
Proto 文件路径
keepCase< /strong>(布尔值),可选,默认 =
true
保留字段大小写而不是转换为驼峰大小写
protoEncoder
类型:流描述
选项:
protoParser(字符串),必需的
Proto 解析器名称
protoPath(字符串),必需的
Proto 消息路径
protoDecoder
类型:流描述
选项:
protoParser(字符串),必需的
Proto 解析器名称
protoPath(字符串),必需
的Proto 消息路径
defaults(布尔值),可选
包含默认值
arrays(布尔值),可选
填充空数组(重复字段),即使 defaults =
false
objects(布尔值),可选
填充空对象(地图字段),即使默认值 =
false
oneofs(bool ean), optional
包括设置为当前字段名称的虚拟 oneof 字段
Proto PARSER Module
proto parser implementation for aranode flow engine.
Table of Contents
Installation
To install this module in your aranode project, you just need to add the package using following command:
$ yarn add @a-mehrabi/aranode-proto-parser
After that, when you want to use it, you must include it in custom modules like the following:
path: .env
ARANODE_CUSTOM_MODULES=@a-mehrabi/aranode-proto-parser
Usage
For using proto encoder or decoder, you need to use encoder or decoder associated description:
- proto parser config config description (protoParserConfig)
- proto encoder flow description (protoEncoder)
- proto decoder flow description (protoDecoder)
proto parser config
Proto parser config description enables you to define the config of the proto parser, including includePaths, protoFilePath and keepCase config.
You don't define configs of the proto encoder and decoder in this config.
version: 1
kind: config
name: proto-parser
config:
protoParser:
includePaths:
- 'protos'
protoFilePath: 'awesome.proto'
keepCase: false
proto encoder
proto encoder flow description enables you to define the proto encoder as a flow node, including protoPath, etc.
proto encoder, encodes javascript literal object to proto buffer.
version: 1
kind: flow
name: greeter-flow
entryPoint: start
flow:
start:
transform:
path: 'dist/get-payload-transformer.js'
nextNode: initProtoEncoder
initProtoEncoder:
protoEncoder:
protoParser: proto-parser
protoPath: 'awesomepackage.AwesomeMessage'
nextNode: checkPayload
checkPayload:
transform:
path: 'dist/check-payload-transformer.js'
nextNode: response
response:
port:
name: greet-in-port
type: inbound
response: true
end: true
terminal: true
proto decoder
proto decoder flow description enables you to define the proto decoder as a flow node.
proto decoder, decodes proto buffer to javascript literal object.
version: 1
kind: flow
name: greeter-flow
entryPoint: start
flow:
start:
entry: true
transform:
path: 'dist/get-payload-transformer.js'
nextNode: initProtoEncoder
initProtoEncoder:
protoEncoder:
protoParser: proto-parser
protoPath: 'awesomepackage.AwesomeMessage'
nextNode: initProtoDecoder
initProtoDecoder:
protoDecoder:
protoParser: proto-parser
protoPath: 'awesomepackage.AwesomeMessage'
defaults: true
arrays: true
objects: true
oneofs: true
nextNode: checkPayload
checkPayload:
transform:
path: 'dist/check-payload-transformer.js'
nextNode: response
response:
port:
name: greet-in-port
type: inbound
response: true
end: true
terminal: true
API
protoParserConfig
Type: config description
Options:
includePaths (string[]), required
Directories and sub-directories containing proto files
protoPath (string), required
Proto file path
keepCase (boolean), optional, default =
true
Keeps field casing instead of converting to camel case
protoEncoder
Type: flow description
Options:
protoParser (string), required
Proto parser name
protoPath (string), required
Proto message path
protoDecoder
Type: flow description
Options:
protoParser (string), required
Proto parser name
protoPath (string), required
Proto message path
defaults (boolean), optional
Includes default values
arrays (boolean), optional
Populates empty arrays (repeated fields) even if defaults =
false
objects (boolean), optional
Populates empty objects (map fields) even if defaults =
false
oneofs (boolean), optional
Includes virtual oneof fields set to the present field's name