Coder Social home page Coder Social logo

swagger-api's Introduction

swagger-api

Quick Start

在项目中引入openapiv2

import	"github.com/go-kratos/swagger-api/openapiv2"

h := openapiv2.NewHandler()
//将/q/路由放在最前匹配
httpSrv.HandlePrefix("/q/", h)

支持generator进行自定义配置

h := openapiv2.NewHandler(openapiv2.WithGeneratorOptions(generator.UseJSONNamesForFields(true), generator.EnumsAsInts(true)))

更多配置参见 https://github.com/go-kratos/grpc-gateway/blob/master/protoc-gen-openapiv2/generator/option.go

启动应用后,在浏览器中输入 http://<ip>:<port>/q/services,在顶栏右侧选框选取希望查看的服务名,即可浏览接口文档。 select service

FAQ

1. 如果启动时顶栏选框未显示可选的服务名,或访问/q/services出现报错,failed to decompress enc: bad gzipped descriptor: EOF的报错说明部分依赖的proto文件生成的路径不对导致的,

比如:

  • api/basedata/tag/v1/tag.proto
  • api/basedata/article/v1/article.proto

api/basedata/article/v1/article.proto import "api/basedata/tag/v1/tag.proto"时 ,生成的依赖为api/basedata/tag/v1/tag.proto 但是 tag.proto 生成的tag.pb.go文件中source是tag.proto(漏掉了api/basedata/tag/v1/)导致了依赖未找到

此时需要生成tag.pb.go时kratos proto client api/basedata/tag/v1/tag.proto 补全proto的路径,这样生成的tag.pb.go文件中source就是正确的(api/basedata/tag/v1/tag.proto)

2. 给swagger api添加说明、examples

请参考a_bit_of_everything,同时注意需要将annotations.protoopenapiv2.proto这两个proto文件复制到third_party/protoc-gen-openapiv2/options目录下

swagger-api's People

Contributors

fifsky avatar longxboy avatar windfarer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

swagger-api's Issues

failed to load API definition

The browser enters the URL of "/q/services" to display service information and methods information, but enters "/q/swagger-ui" to display failed to load API definition.

image

image

thirdparty引入gorm.proto,web访问swagger报错,

third_party目录中增加protoc-gen-gorm/proto/options/gorm.proto,用于proto打gorm标记,protoc生成没有问题,但是在访问swagger的时候,服务端就报错,“metadata/server.go:174: protoc-gen-gorm/proto/options/gorm.proto not found"

尝试把protoc-gen-gorm/proto/options/gorm.proto放入api下层,并用kratos client 生成gorm的pb,不能解决

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.