GraphQL allows us to specify arguments on a field and access their values in the field's resolver.
SDL
type Query {  user(id: ID!): User}
Clients can specify arguments like the following.
GraphQL
{  user(id: "123") {    username  }}
Often times arguments will be specified using variables.
GraphQL
query ($userId: ID!) {  user(id: $userId) {    username  }}
Learn more about arguments here and variables here.
Usage
Arguments can be defined like the following.
C#
public class Query{    public User GetUser(string username)    {        // Omitted code for brevity    }}
We can also change the name of the argument used in the schema.
C#
public class Query{    public User GetUser([GraphQLName("name")] string username)    {        // Omitted code for brevity    }}
Arguments can be made required by using the non-null type. Learn more about non-null
If we need to provide complex objects as arguments, we can use input object types.