proto-open-rpc

module
v0.0.1-alpha Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 12, 2020 License: MIT

README

Proto-Open-RPC

Open-RPC spec generator using protobuf files.

The generator uses some of the rules of pjrpc generators such as:

  • Service naming
  • snake_case methods naming
  • snake_case JSON fields naming

Installation and use

go get -u gitlab.com/pjrpc/proto-open-rpc/cmd/protoc-gen-openrpc
protoc --openrpc_out=. ./protodir/file.proto

Allows to use import proto packages and several services per file.

Flags

  • methods_with_service_name - Method name will be with service name prefix 'service_name_method_name'.
  • services - Service names for generation docs. All services if the flag is empty. Example: (service,srv2,srv3).
  • service_descriptions - Path to JSON file with service descriptions.

Example:

protoc \
	-I ./path/to/packages/ \
	--openrpc_out=service_descriptions=path/to/file.json,services=ServiceName:. \
	./protodir/file.proto

Additional Service info

You can add additional information of the service to the Open-RPC spec. See flag service_descriptions.

File can contains blocks info, servers and externalDocs (spec link).

Example services_info.json:

{
  "ServiceName": {
    "info": {
      "title": "Server with comments",
      "version": "v1.1.0"
    },
    "servers": [
      {
        "name": "Test server",
        "url": "http://localhost:8080/rpc"
      }
    ]
  },
  "SecondServiceName": {
    "servers": [
      {
        "name": "Test server",
        "url": "http://localhost:8080/rpc"
      }
    ]
  }
}

Directories

Path Synopsis
cmd
protoc-gen-openrpc/flag
Package flag contains vars and flags of the spec generator.
Package flag contains vars and flags of the spec generator.
Package genopenrpc generates Open-RPC spec by proto files.
Package genopenrpc generates Open-RPC spec by proto files.
Package model contains JSON models of Open-RPC spec.
Package model contains JSON models of Open-RPC spec.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL