{"id":15487068,"url":"https://github.com/blaugold/graphql-kotlin-support","last_synced_at":"2026-04-27T12:02:43.039Z","repository":{"id":89742013,"uuid":"307430738","full_name":"blaugold/graphql-kotlin-support","owner":"blaugold","description":"Commonly needed functionality for the development of GraphQL APIs, specifically with graphql-kotlin.","archived":false,"fork":false,"pushed_at":"2020-12-06T15:46:45.000Z","size":135,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T16:14:51.978Z","etag":null,"topics":["graphql","kotlin"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/blaugold.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-26T16:10:49.000Z","updated_at":"2020-12-06T18:59:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"db304756-1ed3-4494-a997-91e0f38edd22","html_url":"https://github.com/blaugold/graphql-kotlin-support","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/blaugold/graphql-kotlin-support","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaugold%2Fgraphql-kotlin-support","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaugold%2Fgraphql-kotlin-support/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaugold%2Fgraphql-kotlin-support/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaugold%2Fgraphql-kotlin-support/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blaugold","download_url":"https://codeload.github.com/blaugold/graphql-kotlin-support/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaugold%2Fgraphql-kotlin-support/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32335297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"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":["graphql","kotlin"],"created_at":"2024-10-02T06:21:07.773Z","updated_at":"2026-04-27T12:02:43.020Z","avatar_url":"https://github.com/blaugold.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"![CI](https://github.com/blaugold/graphql-kotlin-support/workflows/CI/badge.svg)\n[![Download](https://api.bintray.com/packages/gabriel-terwesten-oss/maven/graphql-kotlin-support/images/download.svg) ](https://bintray.com/gabriel-terwesten-oss/maven/graphql-kotlin-support/_latestVersion)\n\n# graphql-kotlin-support\n\nA library which provides some commonly needed functionality for the development of GraphQL APIs, specifically with\n[graphql-kotlin].\n\n- Efficient and ergonomic `GlobalId` implementation\n- `AttributeException`: Flexible abstraction for exposing error attributes to clients\n- Data fetching exception handling including exception resolution, logging and transformation of\n  `AttributeException`s into `GraphQLError`s.\n- Handling of function returning `Mono`\n- Propagation of request reactor `Context` to coroutines and returned `Mono`s.\n- Data loading declarations with idiomatic Kotlin\n\n## 📦 Modules\n\n- [example](./example) - Example project which uses `graphql-kotlin-support-starter` and `graphql-kotlin`\n- [graphql-kotlin-support](./graphql-kotlin-support) - Contains the support functionality for global ids, exception\n  handling, data loading and execution context\n- [graphql-kotlin-support-spring](./graphql-kotlin-support-spring) - Spring specific support functionality, including\n  for integration with [Project Reactor](https://projectreactor.io/) and [graphql-kotlin]\n- [graphql-kotlin-support-autoconfigure](./graphql-kotlin-support-autoconfigure) - Autoconfiguration for Spring Boot\n- [graphql-kotlin-support-starter](./graphql-kotlin-support-starter) - Spring Boot Starter\n\n# Install\n\n## Repository\n\nAll the modules are available through `jcenter`.\n\n## Spring \u0026 graphql-kotlin\n\nTo quickly get started, when you are using Spring and [graphql-kotlin], add a dependency to the Spring Boot Starter to\nyour project:\n\nWith maven:\n\n```xml\n\u003cdependency\u003e\n\t\u003cgroupId\u003ecom.gabrielterwesten\u003c/groupId\u003e\n\t\u003cartifactId\u003egraphql-kotlin-support-starter\u003c/artifactId\u003e\n\t\u003cversion\u003e0.3.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nWith gradle:\n\n```kotlin\nimplementation(\"com.gabrielterwesten:graphql-kotlin-support-starter:0.3.0\")\n```\n\n### Auto configuration\n\nWith the autoconfiguration applied you will be able to return `Mono`s from your resolvers. Further you will be able to\nuse subclasses of `GlobalId` in place of `com.expediagroup.graphql.scalars.ID`, in your schema.\n\nThe reactor context, from the server request, will be propagated to coroutines and `Mono`s which are returned from\nresolvers.\n\nCoroutines in resolvers will be started with `CoroutineStart.UNDISPATCHED`, meaning they will start to execute\nimmediately. This is necessary to allow `DataLoaderDispatcherInstrumentation` to work properly.\n\nIf you have a `GlobalIdRegistrationRepository` configured, this repository will be used to encode/decode `GlobalId`s.\n\nThe attributes of any caught `AttributeException` will be added to the `extensions` property of the corresponding\n`GraphQLError`. When the Spring Boot Devtools properties are active, the stack trace of the caught exception will\nalso be included in `extensions`.\n\nFor more information on how to customize the configuration, take a look a the [example](./example) project.\n\n## Development\n\n### Formatting\n\nThe project uses `spotless` to enforce a consistent code style. Formatting is configured for the most common files\ntypes, namely **kotlin** and **markdown**.\n\nBefore committing run `./gradlew spotlessCheck` to find formatting errors and `./gradlew spotlessApply` to fix them.\n\n[graphql-kotlin]: https://expediagroup.github.io/graphql-kotlin/docs/getting-started.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblaugold%2Fgraphql-kotlin-support","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblaugold%2Fgraphql-kotlin-support","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblaugold%2Fgraphql-kotlin-support/lists"}