@@ -42,7 +42,7 @@ The Aspire dashboard opens automatically, providing access to:
4242- ** Real-time Updates** with SignalR notifications
4343- ** Optimistic UI** for instant feedback with eventual consistency
4444- ** Responsive Design** for desktop and mobile
45- - ** Type-safe API Client** with Refit
45+ - ** Type-safe API Client** with BookStore.Client library ( Refit-based)
4646- ** Resilience** with Polly (retry and circuit breaker)
4747
4848### Backend API
@@ -83,41 +83,51 @@ See [Analyzer Rules Documentation](docs/analyzer-rules.md) for details.
8383```
8484BookStore/
8585├── src/
86- │ ├── BookStore.ApiService/ # Backend API with event sourcing
87- │ │ ├── Aggregates/ # Domain aggregates
88- │ │ ├── Events/ # Domain events
89- │ │ ├── Commands/ # Command definitions
90- │ │ ├── Handlers/ # Wolverine command handlers
91- │ │ ├── Projections/ # Read model projections
92- │ │ ├── Endpoints/ # API endpoints
93- │ │ └── Infrastructure/ # Cross-cutting concerns
86+ │ ├── ApiService/
87+ │ │ ├── BookStore.ApiService/ # Backend API with event sourcing
88+ │ │ │ ├── Aggregates/ # Domain aggregates
89+ │ │ │ ├── Events/ # Domain events
90+ │ │ │ ├── Commands/ # Command definitions
91+ │ │ │ ├── Handlers/ # Wolverine command handlers
92+ │ │ │ ├── Projections/ # Read model projections
93+ │ │ │ ├── Endpoints/ # API endpoints
94+ │ │ │ └── Infrastructure/ # Cross-cutting concerns
95+ │ │ │
96+ │ │ └── BookStore.ApiService.Analyzers/ # Roslyn analyzers
9497│ │
95- │ ├── BookStore.Web/ # Blazor frontend
96- │ │ ├── Components/ # Blazor components
97- │ │ ├── Services/ # API client (Refit)
98- │ │ └── Models/ # DTOs and view models
98+ │ ├── Client/
99+ │ │ └── BookStore.Client/ # Reusable API client library
100+ │ │ ├── IBookStoreApi.cs # Refit interface
101+ │ │ ├── BookStoreClientExtensions.cs # DI helpers
102+ │ │ └── README.md # Usage guide
99103│ │
100- │ ├── BookStore.AppHost/ # Aspire orchestration
101- │ │ └── Program.cs # Service configuration
104+ │ ├── Web/
105+ │ │ └── BookStore.Web/ # Blazor frontend
106+ │ │ ├── Components/ # Blazor components
107+ │ │ └── Services/ # Application services
102108│ │
103- │ │ └── Extensions.cs # OpenTelemetry, health checks
109+ │ ├── Shared/
110+ │ │ ├── BookStore.Shared/ # Shared domain models & DTOs
111+ │ │ └── BookStore.Shared.Tests/ # Unit tests for shared code
104112│ │
105- │ ├── BookStore.Shared/ # Shared domain models & DTOs
106- │ │ ├── BookStore.Shared/ # Shared library
107- │ │ └── BookStore.Shared.Tests/# Unit tests for shared code
113+ │ ├── BookStore.AppHost/ # Aspire orchestration
114+ │ │ └── Program.cs # Service configuration
108115│ │
109- │ └── BookStore.Tests/ # Integration tests
116+ │ └── BookStore.ServiceDefaults/ # Shared service configuration
117+ │ └── Extensions.cs # OpenTelemetry, health checks
110118│
111- ├── docs/ # Documentation
112- │ ├── getting-started.md # Setup guide
113- │ ├── architecture.md # System design
114- │ ├── wolverine-guide.md # Command/handler pattern
115- │ ├── time-standards.md # JSON and time standards
116- │ ├── etag-guide.md # ETag usage
117- │ └── correlation-causation-guide.md
119+ ├── docs/ # Documentation
120+ │ ├── getting-started.md # Setup guide
121+ │ ├── architecture.md # System design
122+ │ ├── api-client-generation.md # Client library usage
123+ │ ├── wolverine-guide.md # Command/handler pattern
124+ │ └── ...
118125│
119- ├── BookStore.slnx # Solution file (new .slnx format)
120- └── README.md # This file
126+ ├── _tools/ # Development tools
127+ │ └── update-openapi.sh # OpenAPI spec updater
128+ │
129+ ├── BookStore.slnx # Solution file (new .slnx format)
130+ └── README.md # This file
121131```
122132
123133## 📖 Documentation
@@ -133,6 +143,7 @@ BookStore/
133143- ** [ Testing Guide] ( docs/testing-guide.md ) ** - Testing with TUnit, assertions, and best practices
134144- ** [ Wolverine Integration] ( docs/wolverine-guide.md ) ** - Command/handler pattern with Wolverine
135145- ** [ API Conventions] ( docs/api-conventions-guide.md ) ** - Time handling and JSON serialization standards
146+ - ** [ API Client Generation] ( docs/api-client-generation.md ) ** - Automated client generation with OpenAPI and Refitter
136147- ** [ ETag Support] ( docs/etag-guide.md ) ** - Optimistic concurrency and caching
137148- ** [ Correlation & Causation IDs] ( docs/correlation-causation-guide.md ) ** - Distributed tracing
138149- ** [ Caching Guide] ( docs/caching-guide.md ) ** - Hybrid caching with Redis and localization support
@@ -144,7 +155,7 @@ BookStore/
144155### Frontend
145156- ** Blazor Web** - Interactive web UI with Server rendering
146157- ** SignalR Client** - Real-time notifications
147- - ** Refit ** - Type-safe HTTP client
158+ - ** BookStore.Client ** - Reusable API client library (Refit-based)
148159- ** Polly** - Resilience and transient fault handling
149160
150161### Backend
0 commit comments