Preface
GraphQL is a new API design language that provides a more flexible and efficient API query method. Compared with RESTful API, GraphQL can better meet the needs of front-end engineers, making API development more convenient. gqlgen is a GraphQL library for Golang language development, which can help you build high-quality GraphQL services faster. In this article, we will introduce how to use gqlgen to build GraphQL services.
Install gqlgen
Before you start using gqlgen, you need to install it first. You can install gqlgen by:
go get /99designs/gqlgen
After the installation is complete, you can verify that the installation is successful by running the following command:
gqlgen -h
If installed successfully, you should be able to see the help documentation for gqlgen.
Initialize the project
Before using gqlgen, you need to initialize a project first. You can initialize a gqlgen project with the following command:
go run /99designs/gqlgen init
This command will create a name calledgraph
directory containing some sample code. In this directory you can find a name calledfile that defines GraphQL's schema.
Write a schema
When building a GraphQL service using gqlgen, you first need to define a GraphQL schema. You can use GraphQL's schema language to define schema. existgraph/
In the file, you can define your GraphQL schema, for example:
schema { query: Query } type Query { hello: String! }
In the above schema, we define aQuery
type, containing a namehello
field. The type of this field isString
, and the field must return a non-null value.
Generate code
After you have defined the GraphQL schema, you need to generate the code through gqlgen. existgraph
In the directory, you can run the following command to generate the code:
go run /99designs/gqlgen generate
This command will be based on yourThe GraphQL schema defined in the GraphQL schema to generate relevant code. The generated code will be saved in
graph/generated
In the directory.
Write a resolver
After generating the code, you need to write a resolver to handle GraphQL requests. resolver is a function that will receive a GraphQL request and return the data required for the request. In gqlgen you can use it tograph/
Write a resolver in the file to handle the request. For example:
package graph import "context" type Resolver struct{} func (r *Resolver) Hello(ctx ) (string, error) { return "Hello, world!", nil }
In the above code, we define a name calledResolver
type, it contains aHello
Function, used to processhello
Field request. This function will return astring
A value of type and aerror
value of type, wherestring
The value of type isHello, world!
, indicating that the returned value isHello, world!
. At the same time, the function also returns anil
Type oferror
, means no error occurred.
Run GraphQL service
After completing the above steps, you can run the GraphQL service. existgraph
In the directory, you can run the following command to start the GraphQL service:
go run
This command will start a GraphQL service, which you can enter in the browserhttp://localhost:8080/
Come to access the service. If you areA name is defined in
hello
field, then you can enter the following request in your browser:
query { hello }
The request will return aHello, world!
string.
Next, I will introduce how to use the Apollo client to call the above GraphQL request.
Install the Apollo client
First, we need to install the Apollo client in the project. You can use the following command to install the latest version of Apollo client:
npm install --save apollo-boost graphql
Create an Apollo client
Next, we need to create an Apollo client in the project. In your code, you can use the following code to create an Apollo client:
import ApolloClient from 'apollo-boost'; const client = new ApolloClient({ uri: 'http://localhost:8080/graphql', });
In the above code, we create an Apollo client and set the address of the GraphQL service tohttp://localhost:8080/graphql
。
Perform GraphQL request
After completing the above steps, we can use the Apollo client to perform GraphQL requests. In your code, you can use the following code to execute the above definedhello
Query:
import { gql } from 'graphql-tag'; const GET_HELLO = gql` query { hello } `; client .query({ query: GET_HELLO, }) .then(result => ());
in conclusion
In this article, we describe how to use gqlgen to build a GraphQL service. You need to install gqlgen first, then initialize a project, write a GraphQL schema, generate relevant code, write resolver, and finally run the GraphQL service. Through the introduction of this article, I believe you have learned how to use gqlgen to build high-quality GraphQL services. I hope this article can be helpful to you.
In the above code, we define aGET_HELLO
Query and use the Apollo client'squery
method to execute the query. The query results will be printed to the console.
We also covered how to use the Apollo client to call the GraphQL request above. You need to install the Apollo client first, then create an Apollo client, and finally use that client to perform GraphQL requests. Through the introduction of this article, I believe you have learned about the basic methods of using the Apollo client to call GraphQL requests. I hope this article can be helpful to you.
This is the end of this article about how to implement graphql requests in golang. For more relevant content on the golang library gqlgen usage, please search for my previous articles or continue browsing the related articles below. I hope everyone will support me in the future!