{"id":13413709,"url":"https://github.com/99designs/gqlgen","last_synced_at":"2026-10-18T22:21:33.277Z","repository":{"id":37396507,"uuid":"121086193","full_name":"99designs/gqlgen","owner":"99designs","description":"go generate based graphql server library","archived":false,"fork":false,"pushed_at":"2026-10-17T16:36:06.000Z","size":27829,"stargazers_count":10767,"open_issues_count":396,"forks_count":1263,"subscribers_count":122,"default_branch":"master","last_synced_at":"2026-10-17T17:19:47.958Z","etag":null,"topics":["codegen","dataloader","gogenerate","golang","graphql","schema-first","subscriptions"],"latest_commit_sha":null,"homepage":"https://gqlgen.com","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/99designs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2018-02-11T04:54:11.000Z","updated_at":"2026-10-17T16:36:08.000Z","dependencies_parsed_at":"2026-09-09T08:35:50.143Z","dependency_job_id":"c9d617f0-8ded-48a6-b7c9-3a1df81030dc","html_url":"https://github.com/99designs/gqlgen","commit_stats":{"total_commits":2474,"total_committers":414,"mean_commits":5.975845410628019,"dds":0.8476151980598221,"last_synced_commit":"cdcab8a763a326ab1f5d8cbf8c7a4ce17644be86"},"previous_names":["vektah/gqlgen"],"tags_count":137,"template":false,"template_full_name":null,"purl":"pkg:github/99designs/gqlgen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/99designs%2Fgqlgen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/99designs%2Fgqlgen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/99designs%2Fgqlgen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/99designs%2Fgqlgen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/99designs","download_url":"https://codeload.github.com/99designs/gqlgen/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/99designs%2Fgqlgen/sbom","scorecard":{"id":6361,"data":{"date":"2025-08-11","repo":{"name":"github.com/99designs/gqlgen","commit":"1019905b79c9d04eae63a383c19732f211bb4a6c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.5,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":3,"reason":"Found 5/15 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/coverage.yml:1","Warn: no topLevel permission defined: .github/workflows/fmt-and-generate.yml:1","Warn: no topLevel permission defined: .github/workflows/gomod-clean.yml:1","Warn: no topLevel permission defined: .github/workflows/integration.yml:1","Warn: no topLevel permission defined: .github/workflows/lint.yml:1","Warn: topLevel 'checks' permission set to 'write': .github/workflows/report.yml:9","Warn: no topLevel permission defined: .github/workflows/security.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:17","Info: topLevel 'pull-requests' permission set to 'read': .github/workflows/test.yml:19","Warn: topLevel 'checks' permission set to 'write': .github/workflows/test.yml:21","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":1,"reason":"dependency not pinned by hash detected -- score normalized to 1","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/coverage.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/coverage.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/fmt-and-generate.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/fmt-and-generate.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/fmt-and-generate.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/fmt-and-generate.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gomod-clean.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/gomod-clean.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gomod-clean.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/gomod-clean.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/integration.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/integration.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/integration.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/integration.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/integration.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/integration.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/integration.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/integration.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/lint.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/lint.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lint.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/lint.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lint.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/lint.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/report.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/report.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/report.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/report.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/security.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/security.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/security.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/security.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/security.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/security.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:97: update your workflow using https://app.stepsecurity.io/secureworkflow/99designs/gqlgen/test.yml/master?enable=pin","Warn: containerImage not pinned by hash: _examples/mini-habr-with-subscriptions/Dockerfile:1: pin your Docker image by updating golang:alpine to golang:alpine@sha256:c8c5f95d64aa79b6547f3b626eb84b16a7ce18a139e3e9ca19a8c078b85ba80d","Warn: goCommand not pinned by hash: .github/workflows/check-coverage:4","Warn: npmCommand not pinned by hash: .github/workflows/integration.yml:51","Warn: goCommand not pinned by hash: .github/workflows/test.yml:38","Info:   0 out of  21 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   8 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   1 out of   3 goCommand dependencies pinned","Info:   1 out of   2 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 24 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":3,"reason":"7 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2025-3770","Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-r683-j2x4-v87g","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-14T13:38:04.190Z","repository_id":37396507,"created_at":"2025-08-14T13:38:04.190Z","updated_at":"2025-08-14T13:38:04.190Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38335046,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-17T02:00:06.547Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["codegen","dataloader","gogenerate","golang","graphql","schema-first","subscriptions"],"created_at":"2024-07-30T20:01:47.046Z","updated_at":"2026-10-18T22:21:33.272Z","avatar_url":"https://github.com/99designs.png","language":"Go","funding_links":[],"categories":["Go","Popular","开源类库","Libraries","Command line","Query Language","Open source library","Implementations","HarmonyOS","语言资源库","graphql","Web","查询语言","golang","Relational Databases","\u003ca name=\"Go\"\u003e\u003c/a\u003eGo","API and RPC"],"sub_categories":["查询语言","Go Libraries","Generator","HTTP Clients","Query Language","Go","Windows Manager","go","API and GraphQL","HTTP客户端","Advanced and Specialized Tools"],"readme":"![gqlgen](https://user-images.githubusercontent.com/980499/133180111-d064b38c-6eb9-444b-a60f-7005a6e68222.png)\n\n# gqlgen [![Integration](https://github.com/99designs/gqlgen/actions/workflows/integration.yml/badge.svg)](https://github.com/99designs/gqlgen/actions) [![Coverage Status](https://coveralls.io/repos/github/99designs/gqlgen/badge.svg?branch=master)](https://coveralls.io/github/99designs/gqlgen?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/99designs/gqlgen)](https://goreportcard.com/report/github.com/99designs/gqlgen) [![Go Reference](https://pkg.go.dev/badge/github.com/99designs/gqlgen.svg)](https://pkg.go.dev/github.com/99designs/gqlgen) [![Read the Docs](https://badgen.net/badge/docs/available/green)](http://gqlgen.com/)\n\n## What is gqlgen?\n\n[gqlgen](https://github.com/99designs/gqlgen) is a Go library for building GraphQL servers without any fuss.\u003cbr/\u003e\n\n- **gqlgen is based on a Schema first approach** — You get to Define your API using the GraphQL [Schema Definition Language](http://graphql.org/learn/schema/).\n- **gqlgen prioritizes Type safety** — You should never see `map[string]interface{}` here.\n- **gqlgen enables Codegen** — We generate the boring bits, so you can focus on building your app quickly.\n\nStill not convinced enough to use **gqlgen**? Compare **gqlgen** with other Go graphql [implementations](https://gqlgen.com/feature-comparison/)\n\n## Quick start\n\n1. [Initialise a new go module](https://golang.org/doc/tutorial/create-module)\n\n```shell\nmkdir example\ncd example\ngo mod init example\n```\n\n2. Add `github.com/99designs/gqlgen` to your project, as a [tool dependency](https://go.dev/doc/modules/managing-dependencies#tools)\n\n```shell\ngo get -tool github.com/99designs/gqlgen\n```\n\n3. Initialise gqlgen config and generate models\n\n```shell\ngo tool gqlgen init\n```\n\n4. Start the graphql server\n\n```shell\ngo run server.go\n```\n\nMore help to get started:\n\n- [Getting started tutorial](https://gqlgen.com/getting-started/) - a comprehensive guide to help you get started\n- [Real-world examples](https://github.com/99designs/gqlgen/tree/master/_examples) show how to create GraphQL applications\n- [Reference docs](https://pkg.go.dev/github.com/99designs/gqlgen) for the APIs\n\n## Reporting Issues\n\nIf you think you've found a bug, or something isn't behaving the way you think it should, please raise an [issue](https://github.com/99designs/gqlgen/issues) on GitHub.\n\n## Contributing\n\nWe welcome contributions, Read our [Contribution Guidelines](https://github.com/99designs/gqlgen/blob/master/CONTRIBUTING.md) to learn more about contributing to **gqlgen**\n\n## Frequently asked questions\n\n### How do I prevent fetching child objects that might not be used?\n\nWhen you have nested or recursive schema like this:\n\n```graphql\ntype User {\n\tid: ID!\n\tname: String!\n\tfriends: [User!]!\n}\n```\n\nYou need to tell gqlgen that it should only fetch friends if the user requested it. There are two ways to do this:\n\n### Using Custom Models\n\nWrite a custom model that omits the friends field:\n\n```go\ntype User struct {\n  ID int\n  Name string\n}\n```\n\nAnd reference the model in `gqlgen.yml`:\n\n```yaml\n# gqlgen.yml\nmodels:\n  User:\n    model: github.com/you/pkg/model.User # go import path to the User struct above\n```\n\n### Using Explicit Resolvers\n\nIf you want to keep using the generated model, mark the field as requiring a resolver explicitly in `gqlgen.yml` like this:\n\n```yaml\n# gqlgen.yml\nmodels:\n  User:\n    fields:\n      friends:\n        resolver: true # force a resolver to be generated\n```\n\nAfter doing either of the above and running generate we will need to provide a resolver for friends:\n\n```go\nfunc (r *userResolver) Friends(ctx context.Context, obj *User) ([]*User, error) {\n  // select * from user where friendid = obj.ID\n  return friends,  nil\n}\n```\n\nYou can also use inline config with directives to achieve the same result\n\n```graphql\ndirective @goModel(\n\tmodel: String\n\tmodels: [String!]\n) on OBJECT | INPUT_OBJECT | SCALAR | ENUM | INTERFACE | UNION\n\ndirective @goField(\n\tforceResolver: Boolean\n\tname: String\n\tomittable: Boolean\n\ttype: String\n  autoBindGetterHaser: Boolean\n  forceGenerate: Boolean\n\tbatch: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ntype User @goModel(model: \"github.com/you/pkg/model.User\") {\n\tid: ID! @goField(name: \"todoId\")\n\tfriends: [User!]! @goField(forceResolver: true)\n\t# When omit_resolver_fields is enabled, this field will still be generated in the struct\n\tdata: String! @goField(forceResolver: true, forceGenerate: true)\n}\n```\n\nThe field resolvers will be executed concurrently in separate goroutines. The degree of concurrency can be customized with the [`worker_limit` configuration attribute](https://gqlgen.com/config/).\n\n### Can I change the type of the ID from type String to Type Int?\n\nYes! You can by remapping it in config as seen below:\n\n```yaml\nmodels:\n  ID: # The GraphQL type ID is backed by\n    model:\n      - github.com/99designs/gqlgen/graphql.IntID # a go integer\n      - github.com/99designs/gqlgen/graphql.ID # or a go string\n      - github.com/99designs/gqlgen/graphql.UintID # or a go uint\n```\n\nThis means gqlgen will be able to automatically bind to strings or ints for models you have written yourself, but the\nfirst model in this list is used as the default type and it will always be used when:\n\n- Generating models based on schema\n- As arguments in resolvers\n\nThere isn't any way around this, gqlgen has no way to know what you want in a given context.\n\n### Why do my interfaces have getters? Can I disable these?\n\nThese were added in v0.17.14 to allow accessing common interface fields without casting to a concrete type.\nHowever, certain fields, like Relay-style Connections, cannot be implemented with simple getters.\n\nIf you'd prefer to not have getters generated in your interfaces, you can add the following in your `gqlgen.yml`:\n\n```yaml\n# gqlgen.yml\nomit_getters: true\n```\n\n## Other Resources\n\n- [Christopher Biscardi @ Gophercon UK 2018](https://youtu.be/FdURVezcdcw)\n- [Introducing gqlgen: a GraphQL Server Generator for Go](https://99designs.com.au/blog/engineering/gqlgen-a-graphql-server-generator-for-go/)\n- [Dive into GraphQL by Iván Corrales Solera](https://medium.com/@ivan.corrales.solera/dive-into-graphql-9bfedf22e1a)\n- [Sample Project built on gqlgen with Postgres by Oleg Shalygin](https://github.com/oshalygin/gqlgen-pg-todo-example)\n- [Hackernews GraphQL Server with gqlgen by Shayegan Hooshyari](https://www.howtographql.com/graphql-go/0-introduction/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F99designs%2Fgqlgen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F99designs%2Fgqlgen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F99designs%2Fgqlgen/lists"}