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-23T23:24:58-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):
petstore_auth (OAuth2):
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:
Note: Do not edit generated files directly. Make changes to the OpenAPI specification and regenerate.
Generated by oastools