@@ -37,10 +37,9 @@ Here's some projects that depend on _kin-openapi_:
3737 * Support for OpenAPI 3 files, including serialization, deserialization, and validation.
3838 * _ openapi3filter_ ([ godoc] ( https://godoc.org/github.com/getkin/kin-openapi/openapi3filter ) )
3939 * Validates HTTP requests and responses
40+ * Provides a [ gorilla/mux] ( https://github.com/gorilla/mux ) router for OpenAPI operations
4041 * _ openapi3gen_ ([ godoc] ( https://godoc.org/github.com/getkin/kin-openapi/openapi3gen ) )
4142 * Generates ` *openapi3.Schema ` values for Go types.
42- * _ pathpattern_ ([ godoc] ( https://godoc.org/github.com/getkin/kin-openapi/pathpattern ) )
43- * Matches strings with OpenAPI path patterns ("/path/{parameter}")
4443
4544# Some recipes
4645## Loading OpenAPI document
@@ -51,19 +50,12 @@ swagger, err := openapi3.NewSwaggerLoader().LoadSwaggerFromFile("swagger.json")
5150
5251## Getting OpenAPI operation that matches request
5352``` go
54- func GetOperation (httpRequest *http .Request ) (*openapi3 .Operation , error ) {
55- // Load Swagger file
56- router := openapi3filter.NewRouter ().WithSwaggerFromFile (" swagger.json" )
57-
58- // Find route
59- route , _ , err := router.FindRoute (" GET" , req.URL )
60- if err != nil {
61- return nil , err
62- }
63-
64- // Get OpenAPI 3 operation
65- return route.Operation
66- }
53+ loader := openapi3.NewSwaggerLoader ()
54+ spec , _ := loader.LoadSwaggerFromData ([]byte (` ...` ))
55+ _ := spec.Validate (loader.Context )
56+ router , _ := openapi3filter.NewRouter (spec)
57+ route , pathParams , _ := router.FindRoute (httpRequest)
58+ // Do something with route.Operation
6759```
6860
6961## Validating HTTP requests/responses
@@ -81,12 +73,15 @@ import (
8173)
8274
8375func main () {
84- router := openapi3filter.NewRouter ().WithSwaggerFromFile (" swagger.json" )
8576 ctx := context.Background ()
77+ loader := &openapi3.SwaggerLoader {Context: ctx}
78+ spec , _ := loader.LoadSwaggerFromFile (" openapi3_spec.json" )
79+ _ := spec.Validate (ctx)
80+ router , _ := openapi3filter.NewRouter (spec)
8681 httpReq , _ := http.NewRequest (http.MethodGet , " /items" , nil )
8782
8883 // Find route
89- route , pathParams , _ := router.FindRoute (httpReq. Method , httpReq. URL )
84+ route , pathParams , _ := router.FindRoute (httpReq)
9085
9186 // Validate request
9287 requestValidationInput := &openapi3filter.RequestValidationInput {
0 commit comments