ExShopifySchema.Generator.Graphql.Introspection.Definition.InterfaceType (ExShopifySchema v2025.1.3)
View SourceGraphQL interfaces represent a list of named fields and their arguments. GraphQL objects and interfaces can then implement these interfaces which requires that the implementing type will define all fields defined by those interfaces.
https://spec.graphql.org/October2021/#sec-Interfaces
Example introspection payload
{
"kind": "INTERFACE",
"name": "Node",
"description": "An object with an ID field to support global identification, in accordance with the\n[Relay specification](https://relay.dev/graphql/objectidentification.htm#sec-Node-Interface).\nThis interface is used by the [node](https://shopify.dev/api/admin-graphql/unstable/queries/node)\nand [nodes](https://shopify.dev/api/admin-graphql/unstable/queries/nodes) queries.",
"fields": [
{
"name": "id",
"description": "A globally-unique ID.",
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "ID",
"ofType": null
}
},
"isDeprecated": false,
"deprecationReason": null
}
],
"inputFields": null,
"interfaces": [],
"enumValues": null,
"possibleTypes": [
{
"kind": "OBJECT",
"name": "AbandonedCheckout",
"ofType": null
},
{
"kind": "OBJECT",
"name": "AbandonedCheckoutLineItem",
"ofType": null
},
{
"kind": "OBJECT",
"name": "Abandonment",
"ofType": null
},
{
"kind": "OBJECT",
"name": "AddAllProductsOperation",
"ofType": null
}
]
}
Summary
Types
@type t() :: %ExShopifySchema.Generator.Graphql.Introspection.Definition.InterfaceType{ description: String.t() | nil, directives: [ ExShopifySchema.Generator.Graphql.Introspection.Definition.ConstDirective.t() ], fields: [ ExShopifySchema.Generator.Graphql.Introspection.Definition.Field.t() ], implements: [ ExShopifySchema.Generator.Graphql.Introspection.Definition.NamedType.t() ], interfaces: [ ExShopifySchema.Generator.Graphql.Introspection.Definition.NamedType.t() ], name: String.t() }