@a-mehrabi/aranode-protobuf-parser 中文文档教程

发布于 3年前 浏览 19 更新于 3年前

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 编码器或解码器,您需要使用编码器或解码器相关描述:

  1. proto parser config config description (protoParserConfig)
  2. proto encoder flow description (protoEncoder)
  3. 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:

  1. proto parser config config description (protoParserConfig)
  2. proto encoder flow description (protoEncoder)
  3. 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

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文