Giter Site home page Giter Site logo

protoc-gen-yswagger's Introduction

what's this?

基于bilibili kratos的protoc-gen-bswagger修改而来,通过proto文件生成restful的swagger.json文档

why?

对于生成的swagger.json有一些定制内容

how to use

1. 首先如果没有安装过protoc需要安装protoc

https://github.com/protocolbuffers/protobuf

2. clone当前项目

git clone https://github.com/dangerous1990/protoc-gen-yswagger.git

3. 执行init.sh

进入protoc-plugins项目执行

./init.sh

4. sample

  • hello.proto
syntax = "proto3";
import "google/api/annotations.proto";

service HelloWorld {
    // hello
    rpc Hello (HelloReq) returns (HelloReply) {
        option (google.api.http) = {
            post:"/hello"
        };
    };
}
message HelloReq{
}
message HelloReply{
    string name =1;
}
  • 使用protoc生成swagger.json
protoc -I"${GOPATH}/src/proto" -Iexample example/hello.proto  --yswagger_out=example
# 支持覆盖requestID
protoc -I"${GOPATH}/src/proto" -Iexample example/hello.proto  --yswagger_out=example --yswagger_opt='requestID=request_id'

5. 支持的http的参数转化

post get delete put
path
query
form
json
  • path参数
string id = 1 [(gogoproto.moretags) = 'params:"id"'];
  • query参数
string key1 = 2 [(gogoproto.moretags) = 'query:"key"'];
  • form参数
string key1 = 2 [(gogoproto.moretags) = 'form:"key"'];
  • json参数
string key1 = 2 [(gogoproto.jsontag) = 'key'];

protoc-gen-yswagger's People

Contributors

dangerous1990 avatar

Stargazers

 avatar dainli avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

gogozs jyno12

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.