Skip to content

Swagger Petstore

This is a sample server Petstore server. You can find out more about Swagger at http://swagger.io or on irc.freenode.net, #swagger. For this sample, you can use the api key special-key to test the authorization filters.

Overview

This package was generated by oastools from an OpenAPI specification.

Property Value
API Version 1.0.7
OpenAPI Version 2.0
Package petstore
Generated 2025-12-26T23:04:26-08:00

Generated Files

File Description
types.go Data types and models (61 lines)
client.go HTTP client implementation (755 lines)
server.go Server interface (265 lines)
server_responses.go Generated code (918 lines)
server_binder.go Generated code (528 lines)
server_middleware.go Generated code (165 lines)
server_router.go Generated code (1031 lines)
server_stubs.go Generated code (578 lines)
security_helpers.go Security authentication helpers (35 lines)
oauth2_petstore_auth.go OAuth2 token flow management (137 lines)
credentials.go Credential management (141 lines)
security_enforce.go Security enforcement and validation (120 lines)
oidc_discovery.go OpenID Connect discovery client (253 lines)

Security

This API uses the following authentication methods:

api_key

  • Type: apiKey
  • Location: header

petstore_auth

  • Type: oauth2
  • Flows: implicit

Usage

Creating a Client

import "petstore"

client, err := NewClient("https://api.example.com")
if err != nil {
    log.Fatal(err)
}

Authentication

api_key (API Key in Header):

client, err := NewClient(baseURL, WithApiKeyAPIKey("your-api-key"))

petstore_auth (OAuth2):

client, err := NewClient(baseURL, WithPetstoreAuthOAuth2Token("your-access-token"))

For OAuth2 token management, see the generated OAuth2 client:

oauth2Client := NewPetstoreAuthOAuth2Client(config)
// Use authorization code flow, client credentials, etc.

Credential Providers

Use credential providers for dynamic credential management:

// Environment variables
envProvider := NewEnvCredentialProvider("MYAPP_")
client, err := NewClient(baseURL, WithCredentialProvider(envProvider, "api_key"))

// Memory provider (for testing)
memProvider := NewMemoryCredentialProvider()
memProvider.Set("api_key", "test-key")
client, err := NewClient(baseURL, WithCredentialProvider(memProvider, "api_key"))

// Chain providers (try memory first, then env)
chain := NewCredentialChain(memProvider, envProvider)
client, err := NewClient(baseURL, WithCredentialProvider(chain, "api_key"))

Security Validation

Validate that required security is configured:

validator := NewSecurityValidator()
validator.ConfigureScheme("oauth2", "read", "write")

if err := validator.ValidateOperation("listUsers"); err != nil {
    log.Printf("Security not configured: %v", err)
}

Regeneration

To regenerate this code, run:

oastools generate --package petstore

Note: Do not edit generated files directly. Make changes to the OpenAPI specification and regenerate.


Generated by oastools