Skip to content
Draft
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion spec/Appendix C -- Grammar Summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,11 @@ FieldsDefinition : { FieldDefinition+ }
FieldDefinition : Description? Name ArgumentsDefinition? : Type
Directives[Const]?

FieldExtension :

- extend field MemberCoordinate Directives[const]?
- extend field description MemberCoordinate

ArgumentsDefinition : ( InputValueDefinition+ )

InputValueDefinition : Description? Name : Type DefaultValue? Directives[Const]?
Expand All @@ -328,7 +333,7 @@ InterfaceTypeDefinition :
FieldsDefinition
- Description? interface Name ImplementsInterfaces? Directives[Const]?
[lookahead != `{`]

InterfaceTypeExtension :

- extend interface Name ImplementsInterfaces? Directives[Const]?
Expand Down
25 changes: 25 additions & 0 deletions spec/Section 3 -- Type System.md
Original file line number Diff line number Diff line change
Expand Up @@ -1105,6 +1105,31 @@ Object type extensions have the potential to be invalid if incorrectly defined.
6. The resulting extended object type must be a super-set of all interfaces it
implements.

### Field Extensions

FieldExtension :

- extend field MemberCoordinate Directives[const]?
- extend field description MemberCoordinate

Field extensions are used to represent a field which has been extended from some
previously defined field. For example this may be a GraphQL service which is
itself an extension of another GraphQL service.

In this example, we can deprecate the id field on the User type.

```graphql example
extend field User.name @deprecated(”Some reason”)
```

** Field Validation **

Field validation have the potential to be invalid if incorrectly defined.

1. MemberCoordinate must be resolved to an existing field on a object or interface type.
2. Any non-repeatable directives provided must not already apply to the previous
field.

## Interfaces

InterfaceTypeDefinition :
Expand Down
Loading