# Schema-First vs Code-Only GraphQL

DevFeed: [Schema-First vs Code-Only GraphQL](<https://devfeed.tech/articles/schema-first-vs-code-only-graphql-23504.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/schema-first-vs-code-only-graphql>)

Author: Shane Myrick

Published: 2022-08-29T09:00:00Z

Content type: tutorial

Language: en

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

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [schema design](<https://devfeed.tech/topics/schema-design.md>), [apollo-server](<https://devfeed.tech/topics/apollo-server.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [SQL](<https://devfeed.tech/topics/sql.md>)

Tags: [api-server](<https://devfeed.tech/tags/api-server.md>), [backend](<https://devfeed.tech/tags/backend.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [resolvers](<https://devfeed.tech/tags/resolvers.md>), [schema](<https://devfeed.tech/tags/schema.md>), [schema-design](<https://devfeed.tech/tags/schema-design.md>), [sql](<https://devfeed.tech/tags/sql.md>)

## AI overview

This article explains schema-first and code-only approaches to building GraphQL servers. It compares how schemas and resolvers are defined, discusses generated schemas from external sources such as OpenAPI and SQL databases, and introduces misconceptions about the approaches.

## Source excerpt

When creating a GraphQL server there are two artifacts required by the GraphQL engine: a schema, which defines all the types and fields, and the resolvers, which are the collection of functions that are called to return the data for those types. Since GraphQL can be implemented in many different programming languages, there are of course many tools and libraries you can use to create a server and execute requests.