How swagger-api/swagger-petstore works
Swagger Petstore is a Java sample server implementing the OpenAPI Petstore API, with an interactive HTML UI. API clients invoke pet, store-order, and user operations; controllers validate requests, use in-memory data helpers, and return response entities. The README also identifies the OpenAPI definition and UI as product capabilities. Controller-to-data calls are evidenced by excerpts or the SOURCE INDEX; deployment routing and UI-to-server wiring are not shown in the sampled source.
Main entry points: PetController.java Pet operations · PetData.java Pet data · Pet.java Pet model · Notifier.java Notifications
Components 20
API operations
- Pet operations
src/main/java/io/swagger/petstore/controller/PetController.java - Order operations
src/main/java/io/swagger/petstore/controller/OrderController.java - User operations
src/main/java/io/swagger/petstore/controller/UserController.java - API exceptions
src/main/java/io/swagger/petstore/exception/ApiException.java
In-memory state
- Pet data
src/main/java/io/swagger/petstore/data/PetData.java - Order data
src/main/java/io/swagger/petstore/data/OrderData.java - User data
src/main/java/io/swagger/petstore/data/UserData.java
Domain models
- Pet model
src/main/java/io/swagger/petstore/model/Pet.java - Category model
src/main/java/io/swagger/petstore/model/Category.java - Tag model
src/main/java/io/swagger/petstore/model/Tag.java - Order model
src/main/java/io/swagger/petstore/model/Order.java - User model
src/main/java/io/swagger/petstore/model/User.java - API response model
src/main/java/io/swagger/petstore/model/ApiResponse.java
Product interfaces
- Notifications
src/main/java/io/swagger/petstore/notification/Notifier.java - Null notifier
src/main/java/io/swagger/petstore/notification/NullNotifier.java - BugSnag notifier
src/main/java/io/swagger/petstore/notification/BugSnagNotifier.java - OpenAPI definition
src/main/resources/openapi.yaml - Interactive API UI
src/main/webapp/index.html - Petstore server
src/main/webapp/WEB-INF/web.xml
Other components
- API client
Connections 20
- API client → Pet operations: invokes pet API
- API client → Order operations: invokes order API
- API client → User operations: invokes user API
- Pet operations → Pet data: calls
src/main/java/io/swagger/petstore/controller/PetController.java - Order operations → Order data: calls
src/main/java/io/swagger/petstore/controller/OrderController.java - User operations → User data: calls
src/main/java/io/swagger/petstore/controller/UserController.java - Pet data → Pet model: stores
src/main/java/io/swagger/petstore/data/PetData.java - Pet data → Category model: creates
src/main/java/io/swagger/petstore/data/PetData.java - Pet data → Tag model: creates
src/main/java/io/swagger/petstore/data/PetData.java - Order data → Order model: stores
src/main/java/io/swagger/petstore/data/OrderData.java - User data → User model: stores
src/main/java/io/swagger/petstore/data/UserData.java - Pet operations → Notifications: notifies
src/main/java/io/swagger/petstore/controller/PetController.java - Pet operations → Null notifier: defaults to
src/main/java/io/swagger/petstore/controller/PetController.java - BugSnag notifier → Notifications: implements
src/main/java/io/swagger/petstore/notification/BugSnagNotifier.java - Null notifier → Notifications: implements
src/main/java/io/swagger/petstore/notification/NullNotifier.java - Pet model → Category model: contains
src/main/java/io/swagger/petstore/model/Pet.java - Pet model → Tag model: contains
src/main/java/io/swagger/petstore/model/Pet.java - API client → Interactive API UI: uses interface
README.md - OpenAPI definition → Petstore server: defines API for
- API client → Petstore server: accesses