Skip to content

Absence of Optional arguments are represented with Optional.empty() instead of null #294

Closed

Description

@asfernandes

Accordingly to graphql/graphql-spec#83 there is a distinction of null and absence of value in fields and arguments.

In graphql-java (using with the spring boot package) an Optional field respects that, i.e., absence sets the field to Java null and GraphQL null sets the field to Optional.empty().

However, in method arguments absence of value sets the Optional argument to Optional.empty(), not allowing to distinguish it from explicit GraphQL null.

Activity

  1. asfernandes commented on Jul 19, 2019

    @asfernandes
    Author

    The issue was originally created in graphql-java/graphql-java#1586

  2. vojtapol commented on Sep 3, 2019

    @vojtapol
    Member

    This was a surprise to us too. The workaround is to pass in DataFetchingEnvironment and then call DataFetchingEnvironment::containsArgument.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions