Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Input Types in GraphQL

1. Introduction

GraphQL provides a flexible and powerful way to interact with APIs. One of its key features is the ability to define input types, which allow clients to send structured data to the server.

2. What are Input Types?

Input types are special types in GraphQL that represent the structure of the data that can be sent to the server as part of a mutation or query. They are similar to object types but are specifically designed for input purposes.

Note: Input types cannot have fields that are of type Object or Interface.

3. Defining Input Types

To define an input type in GraphQL, you use the input keyword followed by the type definition. Here is an example of an input type for creating a user:


input CreateUserInput {
    username: String!
    email: String!
    password: String!
}
        

4. Using Input Types in Mutations

Input types are primarily used in mutations. Here’s an example of a mutation that uses the CreateUserInput:


type Mutation {
    createUser(input: CreateUserInput!): User!
}
        

5. Best Practices

  • Always use input types for complex objects to ensure data integrity.
  • Use non-nullable types for required fields to enforce validation.
  • Keep input types small and focused on a specific use case.

6. FAQ

What is the difference between input types and object types?

Input types are used for sending structured data to the server, while object types are used for returning data from the server.

Can input types contain fields that are input types themselves?

Yes, input types can have fields of other input types, enabling complex data structures.