{"id":13804707,"url":"https://github.com/alphasights/ember-graphql-adapter","last_synced_at":"2025-10-07T12:44:41.616Z","repository":{"id":44609823,"uuid":"45475573","full_name":"alphasights/ember-graphql-adapter","owner":"alphasights","description":"GraphQL adapter for Ember Data","archived":false,"fork":false,"pushed_at":"2022-02-04T19:08:23.000Z","size":3096,"stargazers_count":245,"open_issues_count":26,"forks_count":26,"subscribers_count":45,"default_branch":"master","last_synced_at":"2024-04-14T07:25:15.285Z","etag":null,"topics":["ember","ember-addon","graphql","graphql-adapter"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/alphasights.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-11-03T15:25:19.000Z","updated_at":"2023-11-07T12:40:55.000Z","dependencies_parsed_at":"2022-08-30T02:10:18.183Z","dependency_job_id":null,"html_url":"https://github.com/alphasights/ember-graphql-adapter","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphasights%2Fember-graphql-adapter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphasights%2Fember-graphql-adapter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphasights%2Fember-graphql-adapter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphasights%2Fember-graphql-adapter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alphasights","download_url":"https://codeload.github.com/alphasights/ember-graphql-adapter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247451667,"owners_count":20940944,"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":["ember","ember-addon","graphql","graphql-adapter"],"created_at":"2024-08-04T01:00:52.948Z","updated_at":"2025-10-07T12:44:36.593Z","avatar_url":"https://github.com/alphasights.png","language":"JavaScript","readme":"# Ember Data GraphQL Adapter\n\n[![Npm Version](https://badge.fury.io/js/ember-graphql-adapter.svg)](http://badge.fury.io/js/ember-graphql-adapter)\n[![Code Climate](https://codeclimate.com/repos/56718e7b080d2e007b000e1d/badges/8a110d437cbb217f1924/gpa.svg)](https://codeclimate.com/repos/56718e7b080d2e007b000e1d/feed)\n[![Circle CI](https://circleci.com/gh/alphasights/ember-graphql-adapter/tree/master.svg?style=shield\u0026circle-token=b7ad9e9231130c64c6f7bf0e9a7f870cea9ca8e4)](https://circleci.com/gh/alphasights/ember-graphql-adapter/tree/master)\n[![Ember Observer Score](http://emberobserver.com/badges/ember-graphql-adapter.svg)](http://emberobserver.com/addons/ember-graphql-adapter)\n[![Greenkeeper badge](https://badges.greenkeeper.io/alphasights/ember-graphql-adapter.svg)](https://greenkeeper.io/)\n\nA  Ember CLI adapter for using GraphQL with Ember Data.\n\n## Installation\n\n`ember install ember-graphql-adapter`\n\n## Usage\n\nCreate your adapter first\n\n```js\n// app/adapters/post.js\nimport GraphQLAdapter from 'ember-graphql-adapter';\n\nexport default GraphQLAdapter.extend({\n  endpoint: 'http://localhost:3000/graph'\n});\n```\n\nNow define your serializer\n\n```js\n// app/serializers/post.js\nimport { Serializer } from 'ember-graphql-adapter';\n\nexport default Serializer.extend({});\n```\n\nAnd you're done!\n\n## Features\n\n* Queries and mutations are automatically generated for you\n* Field aliases are supported\n* Belongs to relationships are fully supported\n* Has many relationships are fully supported\n* Async relationships and request coalescing is supported with `coalesceFindRequests: true`\n\n## Rails Example\n\nBy using the fantastic [graphql](https://github.com/rmosolgo/graphql-ruby) gem,\nyou can expose your relational database as a GraphQL endpoint.\n\nWe start by creating a new type\n\n```ruby\n# app/models/graph/post_type.rb\nmodule Graph\n  PostType = GraphQL::ObjectType.define do\n    name \"Post\"\n    description \"A post\"\n\n    field :id, types.ID\n    field :name, types.String\n  end\nend\n```\n\nThen we create the query type\n\n```ruby\n# app/models/graph/query_type.rb\nmodule Graph\n  QueryType = GraphQL::ObjectType.define do\n    name \"Query\"\n    description \"The query root of this schema\"\n\n    field :post, PostType do\n      argument :id, !types.ID, \"The ID of the post\"\n      resolve -\u003e (_object, arguments, _context) do\n        Post.find(arguments[:id])\n      end\n    end\n  end\nend\n```\n\nAfter that, it's time for the mutation type\n\n```ruby\n# app/models/graph/mutation_type.rb\nmodule Graph\n  MutationType = GraphQL::ObjectType.define do\n    name \"Mutation\"\n    description \"Mutations\"\n\n    field :postCreate, PostType do\n      argument :name, !types.String, \"The post name\"\n      resolve -\u003e (_object, arguments, _context) do\n        Post.create(name: arguments[:name])\n      end\n    end\n  end\nend\n```\n\nNow, we can build the whole schema\n\n```ruby\n# app/models/graph/schema.rb\nmodule Graph\n  Schema = GraphQL::Schema.define do\n    query Graph::QueryType\n    mutation Graph::MutationType\n  end\nend\n```\n\nIn the controller we just delegate to the GraphQL schema\n\n```ruby\n# app/controllers/graph_controller.rb\nclass GraphController \u003c ApplicationController\n  def execute\n    render json: ::Graph::Schema.execute(\n      params.fetch(\"query\"),\n      context: {} # you can pass the current_user here\n    )\n  end\nend\n```\n\nFinally, we just expose the GraphQL endpoint in the route\n\n```ruby\n# config/routes.rb\nget 'graph', to: 'graph#execute'\n```\n\nAnd that's it!\n\n## Developing\n\n### Installation\n\n* `git clone https://github.com/alphasights/ember-graphql-adapter.git`\n* `yarn install`\n\n### Running\n\n* `yarn start`\n\n### Running Tests\n\n* `yarn run ember test -- --server`\n\n### Building\n\n* `yarn build`\n","funding_links":[],"categories":["Packages","JavaScript"],"sub_categories":["Adapters"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falphasights%2Fember-graphql-adapter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falphasights%2Fember-graphql-adapter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falphasights%2Fember-graphql-adapter/lists"}