Skip to content

Commit 1a069b1

Browse files
adrianpkilya.bogdanov
andcommitted
Extract strict middleware definition into a separate file in runtime package to allow middlewares to be reused (oapi-codegen#1021)
Co-authored-by: ilya.bogdanov <ilya.bogdanov@ispring.com>
1 parent 99af239 commit 1a069b1

10 files changed

Lines changed: 41 additions & 28 deletions

File tree

examples/petstore-expanded/strict/api/petstore-server.gen.go

Lines changed: 2 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/test/issues/issue-removed-external-ref/gen/spec_base/issue.gen.go

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/test/issues/issue-removed-external-ref/gen/spec_ext/issue.gen.go

Lines changed: 3 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/test/strict-server/chi/server.gen.go

Lines changed: 2 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/test/strict-server/echo/server.gen.go

Lines changed: 2 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/test/strict-server/gin/server.gen.go

Lines changed: 2 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/codegen/templates/strict/strict-echo.tmpl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
type StrictHandlerFunc func(ctx echo.Context, args interface{}) (interface{}, error)
2-
3-
type StrictMiddlewareFunc func(f StrictHandlerFunc, operationID string) StrictHandlerFunc
1+
type StrictHandlerFunc = runtime.StrictEchoHandlerFunc
2+
type StrictMiddlewareFunc = runtime.StrictEchoMiddlewareFunc
43

54
func NewStrictHandler(ssi StrictServerInterface, middlewares []StrictMiddlewareFunc) ServerInterface {
65
return &strictHandler{ssi: ssi, middlewares: middlewares}

pkg/codegen/templates/strict/strict-gin.tmpl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
type StrictHandlerFunc func(ctx *gin.Context, args interface{}) (interface{}, error)
2-
3-
type StrictMiddlewareFunc func(f StrictHandlerFunc, operationID string) StrictHandlerFunc
1+
type StrictHandlerFunc = runtime.StrictGinHandlerFunc
2+
type StrictMiddlewareFunc = runtime.StrictGinMiddlewareFunc
43

54
func NewStrictHandler(ssi StrictServerInterface, middlewares []StrictMiddlewareFunc) ServerInterface {
65
return &strictHandler{ssi: ssi, middlewares: middlewares}

pkg/codegen/templates/strict/strict-http.tmpl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
type StrictHandlerFunc func(ctx context.Context, w http.ResponseWriter, r *http.Request, args interface{}) (interface{}, error)
2-
3-
type StrictMiddlewareFunc func(f StrictHandlerFunc, operationID string) StrictHandlerFunc
1+
type StrictHandlerFunc = runtime.StrictHttpHandlerFunc
2+
type StrictMiddlewareFunc = runtime.StrictHttpMiddlewareFunc
43

54
type StrictHTTPServerOptions struct {
65
RequestErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error)

pkg/runtime/strictmiddleware.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package runtime
2+
3+
import (
4+
"context"
5+
"net/http"
6+
7+
"github.com/gin-gonic/gin"
8+
"github.com/labstack/echo/v4"
9+
)
10+
11+
type StrictEchoHandlerFunc func(ctx echo.Context, request interface{}) (response interface{}, err error)
12+
13+
type StrictEchoMiddlewareFunc func(f StrictEchoHandlerFunc, operationID string) StrictEchoHandlerFunc
14+
15+
type StrictHttpHandlerFunc func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (response interface{}, err error)
16+
17+
type StrictHttpMiddlewareFunc func(f StrictHttpHandlerFunc, operationID string) StrictHttpHandlerFunc
18+
19+
type StrictGinHandlerFunc func(ctx *gin.Context, request interface{}) (response interface{}, err error)
20+
21+
type StrictGinMiddlewareFunc func(f StrictGinHandlerFunc, operationID string) StrictGinHandlerFunc

0 commit comments

Comments
 (0)