feat: move gorilla under support

This commit is contained in:
Davide Bianchi
2022-12-22 10:03:20 +01:00
parent da751837df
commit fca6b6910d
6 changed files with 34 additions and 24 deletions

View File

@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased
### BREAKING CHANGES
- `apirouter.NewGorillaMuxRouter` is now `gorilla.NewRouter` (exposed by package `github.com/davidebianchi/gswagger/support/gorilla`).
## 0.6.1 - 17-11-2022
### Changed

View File

@@ -9,6 +9,7 @@ import (
swagger "github.com/davidebianchi/gswagger"
"github.com/davidebianchi/gswagger/apirouter"
"github.com/davidebianchi/gswagger/support/gorilla"
"github.com/getkin/kin-openapi/openapi3"
"github.com/gorilla/mux"
"github.com/labstack/echo/v4"
@@ -77,7 +78,7 @@ func TestIntegration(t *testing.T) {
muxRouter, swaggerRouter := setupSwagger(t)
muxSubRouter := muxRouter.NewRoute().Subrouter()
subRouter, err := swaggerRouter.SubRouter(apirouter.NewGorillaMuxRouter(muxSubRouter), swagger.SubRouterOptions{
subRouter, err := swaggerRouter.SubRouter(gorilla.NewRouter(muxSubRouter), swagger.SubRouterOptions{
PathPrefix: "/prefix",
})
require.NoError(t, err)
@@ -182,7 +183,7 @@ func setupSwagger(t *testing.T) (*mux.Router, *swagger.Router) {
context := context.Background()
muxRouter := mux.NewRouter()
router, err := swagger.NewRouter(apirouter.NewGorillaMuxRouter(muxRouter), swagger.Options{
router, err := swagger.NewRouter(gorilla.NewRouter(muxRouter), swagger.Options{
Context: context,
Openapi: &openapi3.T{
Info: &openapi3.Info{

View File

@@ -10,7 +10,7 @@ import (
"strings"
"testing"
"github.com/davidebianchi/gswagger/apirouter"
"github.com/davidebianchi/gswagger/support/gorilla"
"github.com/getkin/kin-openapi/openapi3"
"github.com/gorilla/mux"
"github.com/stretchr/testify/require"
@@ -18,7 +18,7 @@ import (
func TestNewRouter(t *testing.T) {
muxRouter := mux.NewRouter()
mAPIRouter := apirouter.NewGorillaMuxRouter(muxRouter)
mAPIRouter := gorilla.NewRouter(muxRouter)
info := &openapi3.Info{
Title: "my title",
@@ -187,7 +187,7 @@ func TestGenerateValidSwagger(t *testing.T) {
func TestGenerateAndExposeSwagger(t *testing.T) {
t.Run("fails swagger validation", func(t *testing.T) {
mRouter := mux.NewRouter()
router, err := NewRouter(apirouter.NewGorillaMuxRouter(mRouter), Options{
router, err := NewRouter(gorilla.NewRouter(mRouter), Options{
Openapi: &openapi3.T{
Info: &openapi3.Info{
Title: "title",
@@ -213,7 +213,7 @@ func TestGenerateAndExposeSwagger(t *testing.T) {
swagger, err := openapi3.NewLoader().LoadFromFile("testdata/users_employees.json")
require.NoError(t, err)
router, err := NewRouter(apirouter.NewGorillaMuxRouter(mRouter), Options{
router, err := NewRouter(gorilla.NewRouter(mRouter), Options{
Openapi: swagger,
})
require.NoError(t, err)
@@ -240,7 +240,7 @@ func TestGenerateAndExposeSwagger(t *testing.T) {
swagger, err := openapi3.NewLoader().LoadFromFile("testdata/users_employees.json")
require.NoError(t, err)
router, err := NewRouter(apirouter.NewGorillaMuxRouter(mRouter), Options{
router, err := NewRouter(gorilla.NewRouter(mRouter), Options{
Openapi: swagger,
JSONDocumentationPath: "/custom/path",
})
@@ -268,7 +268,7 @@ func TestGenerateAndExposeSwagger(t *testing.T) {
swagger, err := openapi3.NewLoader().LoadFromFile("testdata/users_employees.json")
require.NoError(t, err)
router, err := NewRouter(apirouter.NewGorillaMuxRouter(mRouter), Options{
router, err := NewRouter(gorilla.NewRouter(mRouter), Options{
Openapi: swagger,
})
require.NoError(t, err)
@@ -295,7 +295,7 @@ func TestGenerateAndExposeSwagger(t *testing.T) {
swagger, err := openapi3.NewLoader().LoadFromFile("testdata/users_employees.json")
require.NoError(t, err)
router, err := NewRouter(apirouter.NewGorillaMuxRouter(mRouter), Options{
router, err := NewRouter(gorilla.NewRouter(mRouter), Options{
Openapi: swagger,
YAMLDocumentationPath: "/custom/path",
})
@@ -320,7 +320,7 @@ func TestGenerateAndExposeSwagger(t *testing.T) {
t.Run("ok - subrouter", func(t *testing.T) {
mRouter := mux.NewRouter()
router, err := NewRouter(apirouter.NewGorillaMuxRouter(mRouter), Options{
router, err := NewRouter(gorilla.NewRouter(mRouter), Options{
Openapi: &openapi3.T{
Info: &openapi3.Info{
Title: "test swagger title",
@@ -337,7 +337,7 @@ func TestGenerateAndExposeSwagger(t *testing.T) {
}, Definitions{})
mSubRouter := mRouter.PathPrefix("/prefix").Subrouter()
subrouter, err := router.SubRouter(apirouter.NewGorillaMuxRouter(mSubRouter), SubRouterOptions{
subrouter, err := router.SubRouter(gorilla.NewRouter(mSubRouter), SubRouterOptions{
PathPrefix: "/prefix",
})
require.NoError(t, err)
@@ -375,7 +375,7 @@ func TestGenerateAndExposeSwagger(t *testing.T) {
t.Run("ok - new router with path prefix", func(t *testing.T) {
mRouter := mux.NewRouter()
router, err := NewRouter(apirouter.NewGorillaMuxRouter(mRouter), Options{
router, err := NewRouter(gorilla.NewRouter(mRouter), Options{
Openapi: &openapi3.T{
Info: &openapi3.Info{
Title: "test swagger title",

View File

@@ -8,7 +8,7 @@ import (
"os"
"testing"
"github.com/davidebianchi/gswagger/apirouter"
"github.com/davidebianchi/gswagger/support/gorilla"
"github.com/getkin/kin-openapi/openapi3"
"github.com/gorilla/mux"
"github.com/stretchr/testify/require"
@@ -440,7 +440,7 @@ func TestAddRoutes(t *testing.T) {
context := context.Background()
r := mux.NewRouter()
router, err := NewRouter(apirouter.NewGorillaMuxRouter(r), Options{
router, err := NewRouter(gorilla.NewRouter(r), Options{
Context: context,
Openapi: getBaseSwagger(t),
})
@@ -630,7 +630,7 @@ func TestResolveRequestBodySchema(t *testing.T) {
}
mux := mux.NewRouter()
router, err := NewRouter(apirouter.NewGorillaMuxRouter(mux), Options{
router, err := NewRouter(gorilla.NewRouter(mux), Options{
Openapi: getBaseSwagger(t),
})
require.NoError(t, err)
@@ -854,7 +854,7 @@ func TestResolveResponsesSchema(t *testing.T) {
}
mux := mux.NewRouter()
router, err := NewRouter(apirouter.NewGorillaMuxRouter(mux), Options{
router, err := NewRouter(gorilla.NewRouter(mux), Options{
Openapi: getBaseSwagger(t),
})
require.NoError(t, err)
@@ -1024,7 +1024,7 @@ func TestResolveParametersSchema(t *testing.T) {
}
mux := mux.NewRouter()
router, err := NewRouter(apirouter.NewGorillaMuxRouter(mux), Options{
router, err := NewRouter(gorilla.NewRouter(mux), Options{
Openapi: getBaseSwagger(t),
})
require.NoError(t, err)

View File

@@ -1,16 +1,20 @@
package apirouter
package gorilla
import "github.com/gorilla/mux"
import (
"github.com/davidebianchi/gswagger/apirouter"
"github.com/gorilla/mux"
)
type gorillaRouter struct {
router *mux.Router
}
func (r gorillaRouter) AddRoute(method string, path string, handler HandlerFunc) Route {
func (r gorillaRouter) AddRoute(method string, path string, handler apirouter.HandlerFunc) apirouter.Route {
return r.router.HandleFunc(path, handler).Methods(method)
}
func NewGorillaMuxRouter(router *mux.Router) Router {
func NewRouter(router *mux.Router) apirouter.Router {
return gorillaRouter{
router: router,
}

View File

@@ -1,20 +1,21 @@
package apirouter
package gorilla
import (
"net/http"
"net/http/httptest"
"testing"
"github.com/davidebianchi/gswagger/apirouter"
"github.com/gorilla/mux"
"github.com/stretchr/testify/require"
)
func TestGorillaMuxRouter(t *testing.T) {
muxRouter := mux.NewRouter()
ar := NewGorillaMuxRouter(muxRouter)
ar := NewRouter(muxRouter)
t.Run("create a new api router", func(t *testing.T) {
require.Implements(t, (*Router)(nil), ar)
require.Implements(t, (*apirouter.Router)(nil), ar)
})
t.Run("add new route", func(t *testing.T) {