{"id":21421884,"url":"https://github.com/rlancer/gapi-to-graphql","last_synced_at":"2025-07-22T21:05:11.084Z","repository":{"id":26335365,"uuid":"108206433","full_name":"rlancer/gapi-to-graphql","owner":"rlancer","description":"Converts any Google Data  Api to GraphQL","archived":false,"fork":false,"pushed_at":"2024-03-29T19:05:00.000Z","size":8907,"stargazers_count":84,"open_issues_count":8,"forks_count":5,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-06-23T10:52:24.201Z","etag":null,"topics":["google-api","graphql","javascript","nodejs"],"latest_commit_sha":null,"homepage":"https://www.collaborizm.com/project/Skkk3bBA-","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rlancer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2017-10-25T01:57:30.000Z","updated_at":"2025-02-18T17:08:14.000Z","dependencies_parsed_at":"2024-06-20T08:21:29.782Z","dependency_job_id":"f94db0e2-7510-49d8-965a-a9ce26d756e5","html_url":"https://github.com/rlancer/gapi-to-graphql","commit_stats":{"total_commits":110,"total_committers":5,"mean_commits":22.0,"dds":0.1454545454545455,"last_synced_commit":"fd49677407145542e3fa49b50110abfc6e8e916a"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/rlancer/gapi-to-graphql","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rlancer%2Fgapi-to-graphql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rlancer%2Fgapi-to-graphql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rlancer%2Fgapi-to-graphql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rlancer%2Fgapi-to-graphql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rlancer","download_url":"https://codeload.github.com/rlancer/gapi-to-graphql/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rlancer%2Fgapi-to-graphql/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266572391,"owners_count":23950012,"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","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["google-api","graphql","javascript","nodejs"],"created_at":"2024-11-22T20:40:19.871Z","updated_at":"2025-07-22T21:05:11.059Z","avatar_url":"https://github.com/rlancer.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![npm version](https://badge.fury.io/js/graphql-add-middleware.svg)](https://badge.fury.io/js/gapi-to-graphql)\n\n# Gapi to GraphQL\n\nConverts almost any Google Data API to a GraphQL API via the [Google API Discovery Service](https://developers.google.com/discovery/)\n\n**Limitations**\n\n- Read only\n- No downloading (think Drive documents ... )\n\n## Supports 138 Google APIs!\n\n[Full list of APIs and their `require()` path](/docs/GoogleAPIs.md)\n\n## Usage\n\n```bash\nnpm i gapi-to-graphql --save\n```\n\n## Example on the server\n\n\u003e index.mjs\n\n```javascript\nimport { gql, ApolloServer } from 'apollo-server'\nimport gapiToGraphQL from 'gapi-to-graphql'\nimport YouTubeAPI from 'gapi-to-graphql/google_apis/youtube-v3'\n\nconst { schema, resolvers } = gapiToGraphQL({ gapiAsJsonSchema: YouTubeAPI })\n\nconst server = new ApolloServer({\n  typeDefs: gql`\n    ${schema}\n  `,\n  resolvers\n})\n\nserver.listen({ port: 3031 }).then(({ url }) =\u003e {\n  console.log(`🚀  Server ready at ${url}`)\n})\n```\n\n\u003e Run example with `node --experimental-modules index.mjs`\n\n## Query usage\n\n```graphql\n{\n  YoutubeApi(key: \"YOUR_API_KEY\") {\n    search {\n      list(q: \"graphql\", part: \"snippet\") {\n        items {\n          id {\n            videoId\n          }\n          snippet {\n            title\n            thumbnails {\n              default {\n                url\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n## Live example YouTube Hunt (Client and Server)\n\ntemporarily down. Going to redploy to Heroku Soon!\n\nGitHub: https://github.com/rlancer/yt-gql-example\n\nUI: https://youtube-gql-example.appspot.com/\n\nGraphiQL: https://youtube-gql-example.appspot.com/graphql\n\nGraphiQL with a query: [URL too long!](\u003chttps://youtube-gql-example.appspot.com/graphql?query=%7B%0A%20%20youtubeV3(key%3A%20%22nokeyneed%22)%20%7B%0A%20%20%20%20search%20%7B%0A%20%20%20%20%20%20list(q%3A%20%22dogs%22%2C%20part%3A%20%22snippet%22)%20%7B%0A%20%20%20%20%20%20%20%20items%20%7B%0A%20%20%20%20%20%20%20%20%20%20id%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20videoId%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20snippet%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A\u003e)\n\n![youtubehunt](https://user-images.githubusercontent.com/1339007/34919957-f4649db6-f938-11e7-8ef6-b7aa2889dc49.png)\n\n## FAQ\n\n**Should this API be exposed to web clients**\n\nYes, but be sure to add API keys and sanitize other parameters via a middleware solution like https://www.npmjs.com/package/graphql-add-middleware\n\n**Can I use this in production**\n\nYes, since all its doing is making API calls it's fairly safe to use in production if your use cases have been well tested in development.\n\n## Contributors\n\nPull requests welcome!\nJoin the [project on Collaborizm](https://www.collaborizm.com/project/Skkk3bBA-)\n\n## License\n\ngapi-to-graphql is MIT licensed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frlancer%2Fgapi-to-graphql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frlancer%2Fgapi-to-graphql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frlancer%2Fgapi-to-graphql/lists"}