Skip to content

ResolverMaps

Contents

Top

ResolverMap

The ResolverMap object maps Resolvers to the fields in the GraphQL Schema The skeleton of a Resolver Map will be generated by Sqoop automatically when a schema is read or updated if one does not alreay exist.

name: string
types: map<string,TypeResolver>
status: {gloo.api.v1.Status}
metadata: {gloo.api.v1.Metadata}

Field Type Label Description
name string Name of the Resolver Map. Resolver Map names must be unique

Resolver Map Names must be unique and follow the following syntax rules: One or more lowercase rfc1035/rfc1123 labels separated by '.' with a maximum length of 253 characters. | | types | map<string,TypeResolver> | | Types is a map of Type Names (defined in the schema) to a TypeResolver, which contain resolvers for the specific fields of the type | | status | gloo.api.v1.Status | | Status indicates the validation status of the role resource. Status is read-only by clients, and set by gloo during validation | | metadata | gloo.api.v1.Metadata | | Metadata contains the resource metadata for the role |

TypeResolver

TypeResolver contains the individual resolvers for each field for a specific type

fields: map<string,Resolver>

Field Type Label Description
fields map<string,Resolver> This is a map of Field Names to the resolver that Sqoop should invoke when a query arrives for that field

Resolver

Resolvers define the actual logic Sqoop needs to know in order to resolve a specific field query

gloo_resolver: {GlooResolver}
template_resolver: {TemplateResolver}
nodejs_resolver: {NodeJSResolver}

Field Type Label Description
gloo_resolver GlooResolver a GlooResolver, which leverages Gloo to retrieve data from backend services and functions for the query
template_resolver TemplateResolver a TemplateResolver, which uses Go Templates to generate data for the query
nodejs_resolver NodeJSResolver a NodeJSResolver, which calls NodeJS functions to return data for the query

GlooResolver

GlooResolvers are the "meat" of Sqoop. GlooResolvers tell Sqoop how to invoke a "Gloo Function"

request_template: string
response_template: string
content_type: string
single_function: {Function}
multi_function: {MultiFunction}

Field Type Label Description
request_template string the Request Template, if specified, will become the body of the HTTP request used to invoke a function through Gloo input parameters, if needed, should be specified in the request template. See Sqoop's Resolver documentation for more information on Request Templates.
response_template string The response template, if specified, will transform the body of HTTP responses returned by Gloo functions. This field should be used if the object returned by the Gloo Function does not match the type specified in the GraphQL schema. It can also be used to modify or transform responses from their original state. See Sqoop's Resolver documentation for more information on Response Templates.
content_type string Optional. Use to set the outbound HTTP Request header Content-Type. Defaults to application/json
single_function Function SingleFunction specifies this resolver will always invoke a single function.
multi_function MultiFunction MultiFunction specifies the resolver will distribute invocation across multiple functions

Function

A reference to a function known to Gloo

upstream: string
function: string

Field Type Label Description
upstream string Name of the Gloo Upstream that provides this function
function string Name of the function itself. See Gloo documentation for more details on functions in Gloo

MultiFunction

A reference to a list of functions known to Gloo

weighted_functions: [{WeightedFunction}]

Field Type Label Description
weighted_functions WeightedFunction repeated A list of functions with weights. Must have size >= 1

WeightedFunction

function: {Function}
weight: uint32

Field Type Label Description
function Function the function to call
weight uint32 Invoking each functoion will be balanced by the ratio of the function's weight to the total weight on a resolver

TemplateResolver

A Go-template which will return data for a Resolver without making a function call. Template Resolvers can make use of Sqoop's builtin template functions as well as the data provided by the Params object to the resolver. Read more about Templates and Resolvers in Sqoop's Resolver documentation.

inline_template: string

Field Type Label Description
inline_template string the Go template as an inline string

NodeJSResolver

NOTE: currently unsupported

inline_code: string

Field Type Label Description
inline_code string