@accility/protoc-swagger-plugin 中文文档教程

发布于 5年前 浏览 29 项目主页 更新于 3年前

.proto to OpenApi Conversion

:warning: 这个包还处于早期阶段,接口可能会来回变化。 当足够稳定时,它将作为 v1.0 发布。

.proto 文件。

此软件包包括 protoc-gen-swagger 插件 来自.com/grpc-ecosystem/grpc-gateway">grpc-gateway 项目。 它还提供了 google common protos 的集合。

Installing

npm install -D @accility/protoc-tools

Usage

const protoc = require('@accility/protoc-tools');
const swagger = require('@accility/protoc-swagger-plugin');
const apis = require('google-proto-files');
const path = require('path');

tools.protoc({
    includeDirs: [
        path.resolve(apis.getProtoPath(), '..'),
        path.resolve('./test/protos')
    ],
    files: ['product.proto'],
    outDir: path.resolve(__dirname, 'generated'),
    outOptions: [
        swagger.createSwaggerOptions({ outOptions: 'logtostderr=true' }),
        tools.generators.js(),
    ]
});

或者使用速记 protoc-swagger-wrapper

const swagger = require('@accility/protoc-swagger-plugin');
const path = require('path');

// The .proto-files from the package google-proto-files is automatically added
// to the include paths since we always need the REST annotations when
// converting from .proto to OpenApi.
swagger.fromProto({
    includeDirs: [path.resolve('./test/protos')],
    files: ['product.proto'],
    outDir: path.resolve(__dirname, 'generated')
});

.proto to OpenApi Conversion

:warning: This package is still in early days and the interfaces might change back and forth. When stable enough it will be released as v1.0.

Generate OpenAPI v2 (Swagger) files from .proto files.

This package includes the protoc-gen-swagger plugin from the grpc-gateway project. It also makes available the collection of the google common protos.

Installing

npm install -D @accility/protoc-tools

Usage

const protoc = require('@accility/protoc-tools');
const swagger = require('@accility/protoc-swagger-plugin');
const apis = require('google-proto-files');
const path = require('path');

tools.protoc({
    includeDirs: [
        path.resolve(apis.getProtoPath(), '..'),
        path.resolve('./test/protos')
    ],
    files: ['product.proto'],
    outDir: path.resolve(__dirname, 'generated'),
    outOptions: [
        swagger.createSwaggerOptions({ outOptions: 'logtostderr=true' }),
        tools.generators.js(),
    ]
});

Or with the shorthand protoc-swagger-wrapper

const swagger = require('@accility/protoc-swagger-plugin');
const path = require('path');

// The .proto-files from the package google-proto-files is automatically added
// to the include paths since we always need the REST annotations when
// converting from .proto to OpenApi.
swagger.fromProto({
    includeDirs: [path.resolve('./test/protos')],
    files: ['product.proto'],
    outDir: path.resolve(__dirname, 'generated')
});
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文