# Tutorial: GraphQL Input Types and Custom Resolvers

DevFeed: [Tutorial: GraphQL Input Types and Custom Resolvers](<https://devfeed.tech/articles/tutorial-graphql-input-types-and-custom-resolvers-23399.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/input-types-and-client-caching>)

Author: Evans Hauser

Published: 2017-06-06T00:15:00Z

Content type: tutorial

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [React](<https://devfeed.tech/topics/react.md>), [Messaging](<https://devfeed.tech/topics/messaging.md>)

Tags: [apollo](<https://devfeed.tech/tags/apollo.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [latency](<https://devfeed.tech/tags/latency.md>), [messaging](<https://devfeed.tech/tags/messaging.md>), [mutation](<https://devfeed.tech/tags/mutation.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [react-router-tutorial](<https://devfeed.tech/tags/react-router-tutorial.md>), [resolvers](<https://devfeed.tech/tags/resolvers.md>), [routing](<https://devfeed.tech/tags/routing.md>), [schema](<https://devfeed.tech/tags/schema.md>), [server](<https://devfeed.tech/tags/server.md>), [state](<https://devfeed.tech/tags/state.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [types](<https://devfeed.tech/tags/types.md>)

## AI overview

Part 5 of a full-stack GraphQL and React tutorial explains how to build a channel detail view for a messaging application. It covers field arguments in queries, Apollo's normalized cache, GraphQL input types, custom resolvers, and mutations for posting messages.

## Source excerpt

This is part 5 of our full-stack GraphQL + React Tutorial that guides you through creating a messaging application. Each part is self-contained and introduces new key concepts, which means you don't have to do all the other parts before doing this one.