How twcrews/planningcenter-api works
This repository is a strongly typed .NET client for Planning Center’s API. The main workflow is that an application uses a generated product/resource client to construct fluent requests; the client sends HTTP requests and returns typed JSON:API responses, with pagination and query controls. Supporting tooling fetches Planning Center’s API schema and writes versioned JSON that the source generators use to create clients. The runtime and generator links follow the README, sampled source, and explicit generator behavior; unsampled implementation details are not expanded.
Main entry points: PlanningCenterResourceClientsGenerator.cs Resource clients · PlanningCenterRootClientsGenerator.cs Product clients · Providers.cs Schema providers · PlanningCenterClient.cs Documentation client
Components 15
API client runtime
- Product clients
Crews.PlanningCenter.Api.Generators/PlanningCenterRootClientsGenerator.cs - Resource clients
Crews.PlanningCenter.Api.Generators/PlanningCenterResourceClientsGenerator.cs - Pagination client
Crews.PlanningCenter.Api/Models/PaginatedResourceClient.cs - DI registration
Crews.PlanningCenter.Api/Extensions/ServiceCollectionExtensions.cs
Client generation
- Schema providers
Crews.PlanningCenter.Api.Generators/Providers.cs - Root client generator
Crews.PlanningCenter.Api.Generators/PlanningCenterRootClientsGenerator.cs - Resource client generator
Crews.PlanningCenter.Api.Generators/PlanningCenterResourceClientsGenerator.cs - Resource model generator
Crews.PlanningCenter.Api.Generators/PlanningCenterResourcesGenerator.cs
Schema documentation
- Parser application
Crews.PlanningCenter.Api.DocParser/Application.cs - Documentation builder
Crews.PlanningCenter.Api.DocParser/Services/DocumentationBuilder.cs - Documentation client
Crews.PlanningCenter.Api.DocParser/Services/PlanningCenterClient.cs - Versioned schema JSON
Crews.PlanningCenter.Api.DocParser/Application.cs
Other components
- Application
- Planning Center API
- API schema
Connections 18
- Application → Product clients: uses
- Product clients → Resource clients: creates clients
- Resource clients → Pagination client: inherits behavior
- Resource clients → Planning Center API: sends HTTP
- Planning Center API → Resource clients: returns JSON:API
- DI registration → Product clients: registers clients
- Parser application → Documentation builder: builds schemas
- Documentation builder → Documentation client: requests documentation
- Documentation client → API schema: fetches schema
- API schema → Documentation client: returns documentation
- Parser application → Versioned schema JSON: writes versions
- Versioned schema JSON → Schema providers: provides metadata
- Root client generator → Schema providers: reads metadata
- Resource client generator → Schema providers: reads metadata
- Resource model generator → Schema providers: reads metadata
- Root client generator → Product clients: generates
- Resource client generator → Resource clients: generates
- Resource model generator → Resource clients: generates models