- Create a new folder for the Project
mkdir GolangGraphQL
- Mod init your project, give it whatever name you like
go mod init github.com/codertjay/GolangGraphQL
- Get gql gen for your project
go get github.com/99designs/gqlgen
- Add gqlgen to tools.go
printf '// +build tools\npackage tools\nimport _ "github.com/99designs/gqlgen"' | gofmt > tools.go
- Get all the dependencies
go mod tidy
- Initialize your project
go run github.com/99designs/gqlgen init
- After you've written the graphql schema, run this -
go run github.com/99designs/gqlgen generate
- After you've built the project, these are the queries to interact with the API -
query GetAllJobs{ jobs{ _id title description company url } }
=======================
mutation CreateJobListing($input: CreateJobListingInput!){ createJobListing(input:$input){ _id title description company url } }
{ "input": { "title": "Software Development Engineer - I", "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt", "company": "Google", "url": "www.google.com/" } }`
=========================
query GetJob($id: ID!){ job(id:$id){ _id title description url company } }
{ "id": "638051d7acc418c13197fdf7" }
=========================
mutation UpdateJob($id: ID!,$input: UpdateJobListingInput!) { updateJobListing(id:$id,input:$input){ title description _id company url } }
{ "id": "638051d3acc418c13197fdf6", "input": { "title": "Software Development Engineer - III" } }
=================================
mutation DeleteQuery($id: ID!) { deleteJobListing(id:$id){ deletedJobId } }
{ "id": "638051d3acc418c13197fdf6" }