{"id":14976034,"url":"https://github.com/mununki/go-graphql-api-boilerplate","last_synced_at":"2025-10-27T17:30:40.632Z","repository":{"id":51279997,"uuid":"182431907","full_name":"mununki/go-graphql-api-boilerplate","owner":"mununki","description":"A Boilerplate of GraphQL API built in Go + graphql-go + gorm","archived":false,"fork":false,"pushed_at":"2021-05-19T00:04:59.000Z","size":79,"stargazers_count":81,"open_issues_count":0,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-01T07:21:48.790Z","etag":null,"topics":["boilerplate","go","gorm","graphql","graphql-api","graphql-go","starter-kit"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mununki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-20T16:57:49.000Z","updated_at":"2024-10-10T08:03:56.000Z","dependencies_parsed_at":"2022-09-26T20:40:42.537Z","dependency_job_id":null,"html_url":"https://github.com/mununki/go-graphql-api-boilerplate","commit_stats":null,"previous_names":["mattdamon108/go-graphql-api-boilerplate"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mununki%2Fgo-graphql-api-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mununki%2Fgo-graphql-api-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mununki%2Fgo-graphql-api-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mununki%2Fgo-graphql-api-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mununki","download_url":"https://codeload.github.com/mununki/go-graphql-api-boilerplate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238527242,"owners_count":19487183,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["boilerplate","go","gorm","graphql","graphql-api","graphql-go","starter-kit"],"created_at":"2024-09-24T13:53:11.505Z","updated_at":"2025-10-27T17:30:35.324Z","avatar_url":"https://github.com/mununki.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Go GraphQL API Boilerplate\n\n## Stacks\n\n- Go\n- GraphQL : [graphql-go](https://github.com/graph-gophers/graphql-go)\n- Querybuilder : [goqu](https://github.com/doug-martin/goqu)\n\n## Features\n\n- User Sign Up \u0026 Sign In with OAuth (Google, Kakao)\n- Change the Profile\n\n## How to Run\n\n### Initialize DB\n\n1. Create a database using `sql/create.sql` (MYSQL)\n\n2. Configure the db in `db/db.go`\n\n```go\n// ConnectDB : connecting DB\nfunc ConnectDB() (*DB, error) {\n\tdb, err := sql.Open(\"mysql\", \"api:your_password$@/database_name?parseTime=true\")\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// https://github.com/go-sql-driver/mysql/#important-settings\n\tdb.SetConnMaxLifetime(time.Minute * 3)\n\tdb.SetMaxOpenConns(10)\n\tdb.SetConnMaxIdleTime(10)\n\n\terrPing := db.Ping()\n\tif errPing != nil {\n\t\tpanic(err.Error())\n\t}\n\n\tqb := goqu.New(\"mysql\", db)\n\n\treturn \u0026DB{qb}, nil\n}\n```\n\n### Make `.env` file\n```env\nSTAGE=PROD // PROD for production or else for debug\nJWT_SECRET=my_secret\nGOOGLE_CLIENT_ID=your_google_web_client_id\nKAKAO_REST_API_KEY=your_kakao_rest_api_key\nKAKAO_REDIRECT_URI=http://localhost:8280/oauth/kakao/redirect\n```\n\n### Run the server\n\n```shell\n$ go run server.go\n```\n\n### GraphQL Playground\n\nConnect to http://localhost:8080\n\n### Authentication : JWT\n\nYou need to set the Http request headers `Authorization`: `Bearer {JWT_token}`\n\n## Usage\n\n### Sign In\n\n```graphql\nmutation {\n  signInGoogle(idToken: \"12345678\") {\n    ok\n    error\n    token\n  }\n}\n```\n\n```graphql\nmutation {\n  signInKakao(code: \"12345678\") {\n    ok\n    error\n    token\n  }\n}\n```\n\n### Change a Profile\n\n```graphql\nmutation {\n  changeProfile(nickname: \"Go developer\") {\n    ok\n    error\n    user {\n      id\n      email\n      nickname\n      createdAt\n      updatedAt\n    }\n  }\n}\n```\n\n### Get my profile\n\n```graphql\nquery {\n  getMyProfile {\n    ok\n    error\n    user {\n      id\n      email\n      nickname\n      createdAt\n      updatedAt\n    }\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmununki%2Fgo-graphql-api-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmununki%2Fgo-graphql-api-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmununki%2Fgo-graphql-api-boilerplate/lists"}