GraphQL¶
GraphQL is a language for describing the structure of data to be returned in an API.
Note
This generator will only create GraphQL definitions, it will not create runtime bindings.
Example Output¶
Overview¶
Graphql can be generated from a LinkML schema.
To run:
gen-graphql personinfo.yaml > personinfo.graphql
Inheritance¶
type Person implements HasAliases
  {
    id: String!
    name: String
    description: String
    image: String
    primaryEmail: String
    birthDate: String
    ageInYears: Integer
    gender: GenderType
    currentAddress: Address
    hasEmploymentHistory: [EmploymentEvent]
    hasFamilialRelationships: [FamilialRelationship]
    hasMedicalHistory: [MedicalEvent]
    aliases: [String]
  }
Docs¶
Command Line¶
gen-graphql¶
Generate graphql representation of a LinkML model
gen-graphql [OPTIONS] YAMLFILE
Options
- --strict-naming¶
- Treat warnings about invalid names or schema elements as errors. - Default:
- False
 
- -V, --version¶
- Show the version and exit. 
- -f, --format <format>¶
- Output format - Default:
- 'graphql'
- Options:
- graphql 
 
- --metadata, --no-metadata¶
- Include metadata in output - Default:
- True
 
- --useuris, --metauris¶
- Use class and slot URIs over model uris - Default:
- True
 
- -im, --importmap <importmap>¶
- Import mapping file 
- --log_level <log_level>¶
- Logging level - Default:
- 'WARNING'
- Options:
- CRITICAL | ERROR | WARNING | INFO | DEBUG 
 
- -v, --verbose¶
- Verbosity. Takes precedence over –log_level. 
- --mergeimports, --no-mergeimports¶
- Merge imports into source file (default=mergeimports) 
- --stacktrace, --no-stacktrace¶
- Print a stack trace when an error occurs - Default:
- False
 
Arguments
- YAMLFILE¶
- Required argument 
Code¶
- class linkml.generators.graphqlgen.GraphqlGenerator(schema: Union[str, TextIO, linkml_runtime.linkml_model.meta.SchemaDefinition, ForwardRef('Generator'), pathlib.Path], schemaview: Optional[linkml_runtime.utils.schemaview.SchemaView] = None, format: Optional[str] = None, metadata: bool = True, useuris: Optional[bool] = None, log_level: Optional[int] = 30, mergeimports: Optional[bool] = True, source_file_date: Optional[str] = None, source_file_size: Optional[int] = None, logger: Optional[logging.Logger] = None, verbose: Optional[bool] = None, output: Optional[str] = None, namespaces: Optional[linkml_runtime.utils.namespaces.Namespaces] = None, directory_output: bool = False, base_dir: str = None, metamodel_name_map: dict[str, str] = None, importmap: Union[str, collections.abc.Mapping[str, str], NoneType] = None, emit_prefixes: set[str] = <factory>, metamodel: linkml.utils.schemaloader.SchemaLoader = None, stacktrace: bool = False, include: Union[str, pathlib.Path, linkml_runtime.linkml_model.meta.SchemaDefinition, NoneType] = None, strict_naming: bool = False)[source]¶