Skip to content
Clean GraphQL API
Lean Mean Clean Apps

Five templates, one search box. Everything in the docs is in here, including the bits we hoped you'd skim.

Try one of these

Results say which template they came from, so you won't end up reading about Lambda when you wanted GraphQL. Again.

Project structure

  • Directorysrc/
    • DirectoryApplication/ the domain and the rules
      • DirectoryAuthors/ queries and entities for authors
        • …
      • DirectoryMovies/ queries and entities for movies
        • …
      • DirectoryReviews/ queries, commands and entities for reviews
        • …
      • DirectoryVersions/ the version query
        • …
      • DirectoryCommon/
        • DirectoryBehaviours/ the validation pipeline behaviour
          • …
        • DirectoryExceptions/ NotFoundException
          • …
        • DirectoryPaging/ shared paging rules
          • …
      • DependencyInjection.cs
    • DirectoryInfrastructure/ the data
      • DirectoryDatabases/MovieReviews/ the EF Core context, models, mapping, migrations and repositories
        • …
      • DependencyInjection.cs
      • DirectoryPresentation/ the GraphQL API
        • DirectoryGraphQL/
          • DirectoryQueries/ the query type, one static class per feature
            • …
          • DirectoryMutations/ the review mutations
            • …
          • DirectoryTypes/ object types for every entity, with their resolvers
            • …
          • DirectoryInputs/ the create and update review inputs
            • …
          • DirectoryDataLoaders/ batch the reviews of a whole page into one query
            • …
          • DirectoryErrors/ ApplicationErrorFilter, Application exceptions to GraphQL errors
            • …
          • DirectoryExtensions/ offset pages to Relay connections and back
            • …
        • DirectoryAuthentication/ the JWT bearer settings
          • …
        • DirectoryExtensions/ builder and app configuration
          • …
        • Program.cs
        • appsettings.json, appsettings.local.json, appsettings.docker.json
  • Directorytests/
    • DirectoryApplication.Tests.Unit/
      • …
    • DirectoryInfrastructure.Tests.Integration/
      • …
    • DirectoryPresentation.Tests.Integration/
      • …
  • docs/RUN.md
  • Directory.Build.props build rules and analyzers for every project
  • Directory.Packages.props every package version, in one place
  • Dockerfile
  • docker-compose.yml
  • global.json
Project References Notes
Presentation Application, Infrastructure References Infrastructure only to wire up dependency injection
Application none Owns the entities, the repository interfaces and the rules
Infrastructure Application Every class is internal