Skip to content

Latest commit

 

History

History
35 lines (32 loc) · 2.6 KB

project-structure.md

File metadata and controls

35 lines (32 loc) · 2.6 KB

Project structure

NOTE: These rules mention terms described in the Terminology document.

This repository has the following structure:

    .
    ├── internal                                # Internal packages
    │   ├── gqlschema                           # GraphQL types and schema
    │   │   ├── schema.graphql                  # GraphQL schema defined with Schema Definition Language
    │   │   ├── models_gen.go                   # GraphQL structs (do not modify - autogenerated file)
    │   │   ├── schema_gen.go                   # GraphQL schema (do not modify - autogenerated file)
    │   │   ├── config.yml                      # Custom types mapping 
    │   │   └── {CUSTOM_TYPE}.go                # Custom types definition
    │   ├── domain                              # Business logic and resolvers split by domains  
    │   │   ├── {DOMAIN_NAME}                   # Domain name directory
    │   │   │   ├── automock                    # Generated interface mocks
    │   │   │   ├── {RESOURCE}_resolver.go      # Resolver type for a specific resource
    │   │   │   ├── {RESOURCE}_service.go       # Business logic for a specific resource
    │   │   │   ├── {RESOURCE}_converter.go     # Type conversion for a specific resource
    │   │   │   └── {DOMAIN_NAME}.go            # The main domain file that exports the `Resolver` composed by resource resolvers
    │   │   ├── shared                          # Shared types for cross-domain dependencies
    │   │   └── root_resolver.go                # Type composed of all resolvers from all domains
    │   └── ...                                 # Other internal packages
    ├── contrib                                 # Examples, non-essential source files, configurations and other files
    │   └── examples                            # Example API resources
    ├── hack                                    # Scripts for generating Custom Resource API
    ├── acceptance                              # Acceptance test setup
    ├── pkg                                     # All generic utilities
    ├── vendor                                  # Dependencies managed by Dep
    ├── main.go                                 # The main entrypoint of the application
    ├── Gopkg.toml                              # Dep manifest
    └── Gopkg.lock                              # Dep lock (do not modify - autogenerated file)