github.com/emreu/go-swagger@v0.22.1/examples/generated/restapi/operations/petstore_api.go (about) 1 // Code generated by go-swagger; DO NOT EDIT. 2 3 package operations 4 5 // This file was generated by the swagger tool. 6 // Editing this file might prove futile when you re-run the swagger generate command 7 8 import ( 9 "fmt" 10 "net/http" 11 "strings" 12 13 errors "github.com/go-openapi/errors" 14 loads "github.com/go-openapi/loads" 15 runtime "github.com/go-openapi/runtime" 16 middleware "github.com/go-openapi/runtime/middleware" 17 security "github.com/go-openapi/runtime/security" 18 spec "github.com/go-openapi/spec" 19 strfmt "github.com/go-openapi/strfmt" 20 "github.com/go-openapi/swag" 21 22 "github.com/go-swagger/go-swagger/examples/generated/restapi/operations/pet" 23 "github.com/go-swagger/go-swagger/examples/generated/restapi/operations/store" 24 "github.com/go-swagger/go-swagger/examples/generated/restapi/operations/user" 25 ) 26 27 // NewPetstoreAPI creates a new Petstore instance 28 func NewPetstoreAPI(spec *loads.Document) *PetstoreAPI { 29 return &PetstoreAPI{ 30 handlers: make(map[string]map[string]http.Handler), 31 formats: strfmt.Default, 32 defaultConsumes: "application/json", 33 defaultProduces: "application/json", 34 customConsumers: make(map[string]runtime.Consumer), 35 customProducers: make(map[string]runtime.Producer), 36 ServerShutdown: func() {}, 37 spec: spec, 38 ServeError: errors.ServeError, 39 BasicAuthenticator: security.BasicAuth, 40 APIKeyAuthenticator: security.APIKeyAuth, 41 BearerAuthenticator: security.BearerAuth, 42 JSONConsumer: runtime.JSONConsumer(), 43 UrlformConsumer: runtime.DiscardConsumer, 44 XMLConsumer: runtime.XMLConsumer(), 45 JSONProducer: runtime.JSONProducer(), 46 XMLProducer: runtime.XMLProducer(), 47 PetAddPetHandler: pet.AddPetHandlerFunc(func(params pet.AddPetParams, principal interface{}) middleware.Responder { 48 return middleware.NotImplemented("operation PetAddPet has not yet been implemented") 49 }), 50 UserCreateUserHandler: user.CreateUserHandlerFunc(func(params user.CreateUserParams) middleware.Responder { 51 return middleware.NotImplemented("operation UserCreateUser has not yet been implemented") 52 }), 53 UserCreateUsersWithArrayInputHandler: user.CreateUsersWithArrayInputHandlerFunc(func(params user.CreateUsersWithArrayInputParams) middleware.Responder { 54 return middleware.NotImplemented("operation UserCreateUsersWithArrayInput has not yet been implemented") 55 }), 56 UserCreateUsersWithListInputHandler: user.CreateUsersWithListInputHandlerFunc(func(params user.CreateUsersWithListInputParams) middleware.Responder { 57 return middleware.NotImplemented("operation UserCreateUsersWithListInput has not yet been implemented") 58 }), 59 StoreDeleteOrderHandler: store.DeleteOrderHandlerFunc(func(params store.DeleteOrderParams) middleware.Responder { 60 return middleware.NotImplemented("operation StoreDeleteOrder has not yet been implemented") 61 }), 62 PetDeletePetHandler: pet.DeletePetHandlerFunc(func(params pet.DeletePetParams, principal interface{}) middleware.Responder { 63 return middleware.NotImplemented("operation PetDeletePet has not yet been implemented") 64 }), 65 UserDeleteUserHandler: user.DeleteUserHandlerFunc(func(params user.DeleteUserParams) middleware.Responder { 66 return middleware.NotImplemented("operation UserDeleteUser has not yet been implemented") 67 }), 68 PetFindPetsByStatusHandler: pet.FindPetsByStatusHandlerFunc(func(params pet.FindPetsByStatusParams, principal interface{}) middleware.Responder { 69 return middleware.NotImplemented("operation PetFindPetsByStatus has not yet been implemented") 70 }), 71 PetFindPetsByTagsHandler: pet.FindPetsByTagsHandlerFunc(func(params pet.FindPetsByTagsParams, principal interface{}) middleware.Responder { 72 return middleware.NotImplemented("operation PetFindPetsByTags has not yet been implemented") 73 }), 74 StoreGetOrderByIDHandler: store.GetOrderByIDHandlerFunc(func(params store.GetOrderByIDParams) middleware.Responder { 75 return middleware.NotImplemented("operation StoreGetOrderByID has not yet been implemented") 76 }), 77 PetGetPetByIDHandler: pet.GetPetByIDHandlerFunc(func(params pet.GetPetByIDParams, principal interface{}) middleware.Responder { 78 return middleware.NotImplemented("operation PetGetPetByID has not yet been implemented") 79 }), 80 UserGetUserByNameHandler: user.GetUserByNameHandlerFunc(func(params user.GetUserByNameParams) middleware.Responder { 81 return middleware.NotImplemented("operation UserGetUserByName has not yet been implemented") 82 }), 83 UserLoginUserHandler: user.LoginUserHandlerFunc(func(params user.LoginUserParams) middleware.Responder { 84 return middleware.NotImplemented("operation UserLoginUser has not yet been implemented") 85 }), 86 UserLogoutUserHandler: user.LogoutUserHandlerFunc(func(params user.LogoutUserParams) middleware.Responder { 87 return middleware.NotImplemented("operation UserLogoutUser has not yet been implemented") 88 }), 89 StorePlaceOrderHandler: store.PlaceOrderHandlerFunc(func(params store.PlaceOrderParams) middleware.Responder { 90 return middleware.NotImplemented("operation StorePlaceOrder has not yet been implemented") 91 }), 92 PetUpdatePetHandler: pet.UpdatePetHandlerFunc(func(params pet.UpdatePetParams, principal interface{}) middleware.Responder { 93 return middleware.NotImplemented("operation PetUpdatePet has not yet been implemented") 94 }), 95 PetUpdatePetWithFormHandler: pet.UpdatePetWithFormHandlerFunc(func(params pet.UpdatePetWithFormParams, principal interface{}) middleware.Responder { 96 return middleware.NotImplemented("operation PetUpdatePetWithForm has not yet been implemented") 97 }), 98 UserUpdateUserHandler: user.UpdateUserHandlerFunc(func(params user.UpdateUserParams) middleware.Responder { 99 return middleware.NotImplemented("operation UserUpdateUser has not yet been implemented") 100 }), 101 102 // Applies when the "api_key" header is set 103 APIKeyAuth: func(token string) (interface{}, error) { 104 return nil, errors.NotImplemented("api key auth (api_key) api_key from header param [api_key] has not yet been implemented") 105 }, 106 PetstoreAuthAuth: func(token string, scopes []string) (interface{}, error) { 107 return nil, errors.NotImplemented("oauth2 bearer auth (petstore_auth) has not yet been implemented") 108 }, 109 110 // default authorizer is authorized meaning no requests are blocked 111 APIAuthorizer: security.Authorized(), 112 } 113 } 114 115 /*PetstoreAPI This is a sample server Petstore server. 116 117 [Learn about Swagger](http://swagger.wordnik.com) or join the IRC channel '#swagger' on irc.freenode.net. 118 119 For this sample, you can use the api key 'special-key' to test the authorization filters 120 */ 121 type PetstoreAPI struct { 122 spec *loads.Document 123 context *middleware.Context 124 handlers map[string]map[string]http.Handler 125 formats strfmt.Registry 126 customConsumers map[string]runtime.Consumer 127 customProducers map[string]runtime.Producer 128 defaultConsumes string 129 defaultProduces string 130 Middleware func(middleware.Builder) http.Handler 131 132 // BasicAuthenticator generates a runtime.Authenticator from the supplied basic auth function. 133 // It has a default implementation in the security package, however you can replace it for your particular usage. 134 BasicAuthenticator func(security.UserPassAuthentication) runtime.Authenticator 135 // APIKeyAuthenticator generates a runtime.Authenticator from the supplied token auth function. 136 // It has a default implementation in the security package, however you can replace it for your particular usage. 137 APIKeyAuthenticator func(string, string, security.TokenAuthentication) runtime.Authenticator 138 // BearerAuthenticator generates a runtime.Authenticator from the supplied bearer token auth function. 139 // It has a default implementation in the security package, however you can replace it for your particular usage. 140 BearerAuthenticator func(string, security.ScopedTokenAuthentication) runtime.Authenticator 141 142 // JSONConsumer registers a consumer for a "application/json" mime type 143 JSONConsumer runtime.Consumer 144 // UrlformConsumer registers a consumer for a "application/x-www-form-urlencoded" mime type 145 UrlformConsumer runtime.Consumer 146 // XMLConsumer registers a consumer for a "application/xml" mime type 147 XMLConsumer runtime.Consumer 148 149 // JSONProducer registers a producer for a "application/json" mime type 150 JSONProducer runtime.Producer 151 // XMLProducer registers a producer for a "application/xml" mime type 152 XMLProducer runtime.Producer 153 154 // APIKeyAuth registers a function that takes a token and returns a principal 155 // it performs authentication based on an api key api_key provided in the header 156 APIKeyAuth func(string) (interface{}, error) 157 158 // PetstoreAuthAuth registers a function that takes an access token and a collection of required scopes and returns a principal 159 // it performs authentication based on an oauth2 bearer token provided in the request 160 PetstoreAuthAuth func(string, []string) (interface{}, error) 161 162 // APIAuthorizer provides access control (ACL/RBAC/ABAC) by providing access to the request and authenticated principal 163 APIAuthorizer runtime.Authorizer 164 165 // PetAddPetHandler sets the operation handler for the add pet operation 166 PetAddPetHandler pet.AddPetHandler 167 // UserCreateUserHandler sets the operation handler for the create user operation 168 UserCreateUserHandler user.CreateUserHandler 169 // UserCreateUsersWithArrayInputHandler sets the operation handler for the create users with array input operation 170 UserCreateUsersWithArrayInputHandler user.CreateUsersWithArrayInputHandler 171 // UserCreateUsersWithListInputHandler sets the operation handler for the create users with list input operation 172 UserCreateUsersWithListInputHandler user.CreateUsersWithListInputHandler 173 // StoreDeleteOrderHandler sets the operation handler for the delete order operation 174 StoreDeleteOrderHandler store.DeleteOrderHandler 175 // PetDeletePetHandler sets the operation handler for the delete pet operation 176 PetDeletePetHandler pet.DeletePetHandler 177 // UserDeleteUserHandler sets the operation handler for the delete user operation 178 UserDeleteUserHandler user.DeleteUserHandler 179 // PetFindPetsByStatusHandler sets the operation handler for the find pets by status operation 180 PetFindPetsByStatusHandler pet.FindPetsByStatusHandler 181 // PetFindPetsByTagsHandler sets the operation handler for the find pets by tags operation 182 PetFindPetsByTagsHandler pet.FindPetsByTagsHandler 183 // StoreGetOrderByIDHandler sets the operation handler for the get order by Id operation 184 StoreGetOrderByIDHandler store.GetOrderByIDHandler 185 // PetGetPetByIDHandler sets the operation handler for the get pet by Id operation 186 PetGetPetByIDHandler pet.GetPetByIDHandler 187 // UserGetUserByNameHandler sets the operation handler for the get user by name operation 188 UserGetUserByNameHandler user.GetUserByNameHandler 189 // UserLoginUserHandler sets the operation handler for the login user operation 190 UserLoginUserHandler user.LoginUserHandler 191 // UserLogoutUserHandler sets the operation handler for the logout user operation 192 UserLogoutUserHandler user.LogoutUserHandler 193 // StorePlaceOrderHandler sets the operation handler for the place order operation 194 StorePlaceOrderHandler store.PlaceOrderHandler 195 // PetUpdatePetHandler sets the operation handler for the update pet operation 196 PetUpdatePetHandler pet.UpdatePetHandler 197 // PetUpdatePetWithFormHandler sets the operation handler for the update pet with form operation 198 PetUpdatePetWithFormHandler pet.UpdatePetWithFormHandler 199 // UserUpdateUserHandler sets the operation handler for the update user operation 200 UserUpdateUserHandler user.UpdateUserHandler 201 202 // ServeError is called when an error is received, there is a default handler 203 // but you can set your own with this 204 ServeError func(http.ResponseWriter, *http.Request, error) 205 206 // ServerShutdown is called when the HTTP(S) server is shut down and done 207 // handling all active connections and does not accept connections any more 208 ServerShutdown func() 209 210 // Custom command line argument groups with their descriptions 211 CommandLineOptionsGroups []swag.CommandLineOptionsGroup 212 213 // User defined logger function. 214 Logger func(string, ...interface{}) 215 } 216 217 // SetDefaultProduces sets the default produces media type 218 func (o *PetstoreAPI) SetDefaultProduces(mediaType string) { 219 o.defaultProduces = mediaType 220 } 221 222 // SetDefaultConsumes returns the default consumes media type 223 func (o *PetstoreAPI) SetDefaultConsumes(mediaType string) { 224 o.defaultConsumes = mediaType 225 } 226 227 // SetSpec sets a spec that will be served for the clients. 228 func (o *PetstoreAPI) SetSpec(spec *loads.Document) { 229 o.spec = spec 230 } 231 232 // DefaultProduces returns the default produces media type 233 func (o *PetstoreAPI) DefaultProduces() string { 234 return o.defaultProduces 235 } 236 237 // DefaultConsumes returns the default consumes media type 238 func (o *PetstoreAPI) DefaultConsumes() string { 239 return o.defaultConsumes 240 } 241 242 // Formats returns the registered string formats 243 func (o *PetstoreAPI) Formats() strfmt.Registry { 244 return o.formats 245 } 246 247 // RegisterFormat registers a custom format validator 248 func (o *PetstoreAPI) RegisterFormat(name string, format strfmt.Format, validator strfmt.Validator) { 249 o.formats.Add(name, format, validator) 250 } 251 252 // Validate validates the registrations in the PetstoreAPI 253 func (o *PetstoreAPI) Validate() error { 254 var unregistered []string 255 256 if o.JSONConsumer == nil { 257 unregistered = append(unregistered, "JSONConsumer") 258 } 259 260 if o.UrlformConsumer == nil { 261 unregistered = append(unregistered, "UrlformConsumer") 262 } 263 264 if o.XMLConsumer == nil { 265 unregistered = append(unregistered, "XMLConsumer") 266 } 267 268 if o.JSONProducer == nil { 269 unregistered = append(unregistered, "JSONProducer") 270 } 271 272 if o.XMLProducer == nil { 273 unregistered = append(unregistered, "XMLProducer") 274 } 275 276 if o.APIKeyAuth == nil { 277 unregistered = append(unregistered, "APIKeyAuth") 278 } 279 280 if o.PetstoreAuthAuth == nil { 281 unregistered = append(unregistered, "PetstoreAuthAuth") 282 } 283 284 if o.PetAddPetHandler == nil { 285 unregistered = append(unregistered, "pet.AddPetHandler") 286 } 287 288 if o.UserCreateUserHandler == nil { 289 unregistered = append(unregistered, "user.CreateUserHandler") 290 } 291 292 if o.UserCreateUsersWithArrayInputHandler == nil { 293 unregistered = append(unregistered, "user.CreateUsersWithArrayInputHandler") 294 } 295 296 if o.UserCreateUsersWithListInputHandler == nil { 297 unregistered = append(unregistered, "user.CreateUsersWithListInputHandler") 298 } 299 300 if o.StoreDeleteOrderHandler == nil { 301 unregistered = append(unregistered, "store.DeleteOrderHandler") 302 } 303 304 if o.PetDeletePetHandler == nil { 305 unregistered = append(unregistered, "pet.DeletePetHandler") 306 } 307 308 if o.UserDeleteUserHandler == nil { 309 unregistered = append(unregistered, "user.DeleteUserHandler") 310 } 311 312 if o.PetFindPetsByStatusHandler == nil { 313 unregistered = append(unregistered, "pet.FindPetsByStatusHandler") 314 } 315 316 if o.PetFindPetsByTagsHandler == nil { 317 unregistered = append(unregistered, "pet.FindPetsByTagsHandler") 318 } 319 320 if o.StoreGetOrderByIDHandler == nil { 321 unregistered = append(unregistered, "store.GetOrderByIDHandler") 322 } 323 324 if o.PetGetPetByIDHandler == nil { 325 unregistered = append(unregistered, "pet.GetPetByIDHandler") 326 } 327 328 if o.UserGetUserByNameHandler == nil { 329 unregistered = append(unregistered, "user.GetUserByNameHandler") 330 } 331 332 if o.UserLoginUserHandler == nil { 333 unregistered = append(unregistered, "user.LoginUserHandler") 334 } 335 336 if o.UserLogoutUserHandler == nil { 337 unregistered = append(unregistered, "user.LogoutUserHandler") 338 } 339 340 if o.StorePlaceOrderHandler == nil { 341 unregistered = append(unregistered, "store.PlaceOrderHandler") 342 } 343 344 if o.PetUpdatePetHandler == nil { 345 unregistered = append(unregistered, "pet.UpdatePetHandler") 346 } 347 348 if o.PetUpdatePetWithFormHandler == nil { 349 unregistered = append(unregistered, "pet.UpdatePetWithFormHandler") 350 } 351 352 if o.UserUpdateUserHandler == nil { 353 unregistered = append(unregistered, "user.UpdateUserHandler") 354 } 355 356 if len(unregistered) > 0 { 357 return fmt.Errorf("missing registration: %s", strings.Join(unregistered, ", ")) 358 } 359 360 return nil 361 } 362 363 // ServeErrorFor gets a error handler for a given operation id 364 func (o *PetstoreAPI) ServeErrorFor(operationID string) func(http.ResponseWriter, *http.Request, error) { 365 return o.ServeError 366 } 367 368 // AuthenticatorsFor gets the authenticators for the specified security schemes 369 func (o *PetstoreAPI) AuthenticatorsFor(schemes map[string]spec.SecurityScheme) map[string]runtime.Authenticator { 370 371 result := make(map[string]runtime.Authenticator) 372 for name := range schemes { 373 switch name { 374 375 case "api_key": 376 377 scheme := schemes[name] 378 result[name] = o.APIKeyAuthenticator(scheme.Name, scheme.In, o.APIKeyAuth) 379 380 case "petstore_auth": 381 382 result[name] = o.BearerAuthenticator(name, o.PetstoreAuthAuth) 383 384 } 385 } 386 return result 387 388 } 389 390 // Authorizer returns the registered authorizer 391 func (o *PetstoreAPI) Authorizer() runtime.Authorizer { 392 393 return o.APIAuthorizer 394 395 } 396 397 // ConsumersFor gets the consumers for the specified media types 398 func (o *PetstoreAPI) ConsumersFor(mediaTypes []string) map[string]runtime.Consumer { 399 400 result := make(map[string]runtime.Consumer) 401 for _, mt := range mediaTypes { 402 switch mt { 403 404 case "application/json": 405 result["application/json"] = o.JSONConsumer 406 407 case "application/x-www-form-urlencoded": 408 result["application/x-www-form-urlencoded"] = o.UrlformConsumer 409 410 case "application/xml": 411 result["application/xml"] = o.XMLConsumer 412 413 } 414 415 if c, ok := o.customConsumers[mt]; ok { 416 result[mt] = c 417 } 418 } 419 return result 420 421 } 422 423 // ProducersFor gets the producers for the specified media types 424 func (o *PetstoreAPI) ProducersFor(mediaTypes []string) map[string]runtime.Producer { 425 426 result := make(map[string]runtime.Producer) 427 for _, mt := range mediaTypes { 428 switch mt { 429 430 case "application/json": 431 result["application/json"] = o.JSONProducer 432 433 case "application/xml": 434 result["application/xml"] = o.XMLProducer 435 436 } 437 438 if p, ok := o.customProducers[mt]; ok { 439 result[mt] = p 440 } 441 } 442 return result 443 444 } 445 446 // HandlerFor gets a http.Handler for the provided operation method and path 447 func (o *PetstoreAPI) HandlerFor(method, path string) (http.Handler, bool) { 448 if o.handlers == nil { 449 return nil, false 450 } 451 um := strings.ToUpper(method) 452 if _, ok := o.handlers[um]; !ok { 453 return nil, false 454 } 455 if path == "/" { 456 path = "" 457 } 458 h, ok := o.handlers[um][path] 459 return h, ok 460 } 461 462 // Context returns the middleware context for the petstore API 463 func (o *PetstoreAPI) Context() *middleware.Context { 464 if o.context == nil { 465 o.context = middleware.NewRoutableContext(o.spec, o, nil) 466 } 467 468 return o.context 469 } 470 471 func (o *PetstoreAPI) initHandlerCache() { 472 o.Context() // don't care about the result, just that the initialization happened 473 474 if o.handlers == nil { 475 o.handlers = make(map[string]map[string]http.Handler) 476 } 477 478 if o.handlers["POST"] == nil { 479 o.handlers["POST"] = make(map[string]http.Handler) 480 } 481 o.handlers["POST"]["/pets"] = pet.NewAddPet(o.context, o.PetAddPetHandler) 482 483 if o.handlers["POST"] == nil { 484 o.handlers["POST"] = make(map[string]http.Handler) 485 } 486 o.handlers["POST"]["/users"] = user.NewCreateUser(o.context, o.UserCreateUserHandler) 487 488 if o.handlers["POST"] == nil { 489 o.handlers["POST"] = make(map[string]http.Handler) 490 } 491 o.handlers["POST"]["/users/createWithArray"] = user.NewCreateUsersWithArrayInput(o.context, o.UserCreateUsersWithArrayInputHandler) 492 493 if o.handlers["POST"] == nil { 494 o.handlers["POST"] = make(map[string]http.Handler) 495 } 496 o.handlers["POST"]["/users/createWithList"] = user.NewCreateUsersWithListInput(o.context, o.UserCreateUsersWithListInputHandler) 497 498 if o.handlers["DELETE"] == nil { 499 o.handlers["DELETE"] = make(map[string]http.Handler) 500 } 501 o.handlers["DELETE"]["/stores/order/{orderId}"] = store.NewDeleteOrder(o.context, o.StoreDeleteOrderHandler) 502 503 if o.handlers["DELETE"] == nil { 504 o.handlers["DELETE"] = make(map[string]http.Handler) 505 } 506 o.handlers["DELETE"]["/pets/{petId}"] = pet.NewDeletePet(o.context, o.PetDeletePetHandler) 507 508 if o.handlers["DELETE"] == nil { 509 o.handlers["DELETE"] = make(map[string]http.Handler) 510 } 511 o.handlers["DELETE"]["/users/{username}"] = user.NewDeleteUser(o.context, o.UserDeleteUserHandler) 512 513 if o.handlers["GET"] == nil { 514 o.handlers["GET"] = make(map[string]http.Handler) 515 } 516 o.handlers["GET"]["/pets/findByStatus"] = pet.NewFindPetsByStatus(o.context, o.PetFindPetsByStatusHandler) 517 518 if o.handlers["GET"] == nil { 519 o.handlers["GET"] = make(map[string]http.Handler) 520 } 521 o.handlers["GET"]["/pets/findByTags"] = pet.NewFindPetsByTags(o.context, o.PetFindPetsByTagsHandler) 522 523 if o.handlers["GET"] == nil { 524 o.handlers["GET"] = make(map[string]http.Handler) 525 } 526 o.handlers["GET"]["/stores/order/{orderId}"] = store.NewGetOrderByID(o.context, o.StoreGetOrderByIDHandler) 527 528 if o.handlers["GET"] == nil { 529 o.handlers["GET"] = make(map[string]http.Handler) 530 } 531 o.handlers["GET"]["/pets/{petId}"] = pet.NewGetPetByID(o.context, o.PetGetPetByIDHandler) 532 533 if o.handlers["GET"] == nil { 534 o.handlers["GET"] = make(map[string]http.Handler) 535 } 536 o.handlers["GET"]["/users/{username}"] = user.NewGetUserByName(o.context, o.UserGetUserByNameHandler) 537 538 if o.handlers["GET"] == nil { 539 o.handlers["GET"] = make(map[string]http.Handler) 540 } 541 o.handlers["GET"]["/users/login"] = user.NewLoginUser(o.context, o.UserLoginUserHandler) 542 543 if o.handlers["GET"] == nil { 544 o.handlers["GET"] = make(map[string]http.Handler) 545 } 546 o.handlers["GET"]["/users/logout"] = user.NewLogoutUser(o.context, o.UserLogoutUserHandler) 547 548 if o.handlers["POST"] == nil { 549 o.handlers["POST"] = make(map[string]http.Handler) 550 } 551 o.handlers["POST"]["/stores/order"] = store.NewPlaceOrder(o.context, o.StorePlaceOrderHandler) 552 553 if o.handlers["PUT"] == nil { 554 o.handlers["PUT"] = make(map[string]http.Handler) 555 } 556 o.handlers["PUT"]["/pets"] = pet.NewUpdatePet(o.context, o.PetUpdatePetHandler) 557 558 if o.handlers["POST"] == nil { 559 o.handlers["POST"] = make(map[string]http.Handler) 560 } 561 o.handlers["POST"]["/pets/{petId}"] = pet.NewUpdatePetWithForm(o.context, o.PetUpdatePetWithFormHandler) 562 563 if o.handlers["PUT"] == nil { 564 o.handlers["PUT"] = make(map[string]http.Handler) 565 } 566 o.handlers["PUT"]["/users/{username}"] = user.NewUpdateUser(o.context, o.UserUpdateUserHandler) 567 568 } 569 570 // Serve creates a http handler to serve the API over HTTP 571 // can be used directly in http.ListenAndServe(":8000", api.Serve(nil)) 572 func (o *PetstoreAPI) Serve(builder middleware.Builder) http.Handler { 573 o.Init() 574 575 if o.Middleware != nil { 576 return o.Middleware(builder) 577 } 578 return o.context.APIHandler(builder) 579 } 580 581 // Init allows you to just initialize the handler cache, you can then recompose the middleware as you see fit 582 func (o *PetstoreAPI) Init() { 583 if len(o.handlers) == 0 { 584 o.initHandlerCache() 585 } 586 } 587 588 // RegisterConsumer allows you to add (or override) a consumer for a media type. 589 func (o *PetstoreAPI) RegisterConsumer(mediaType string, consumer runtime.Consumer) { 590 o.customConsumers[mediaType] = consumer 591 } 592 593 // RegisterProducer allows you to add (or override) a producer for a media type. 594 func (o *PetstoreAPI) RegisterProducer(mediaType string, producer runtime.Producer) { 595 o.customProducers[mediaType] = producer 596 }