{"id":26714924,"url":"https://github.com/akshayjadhav4/graphql-learning","last_synced_at":"2026-05-03T16:32:25.482Z","repository":{"id":151650714,"uuid":"321630974","full_name":"akshayjadhav4/graphQL-learning","owner":"akshayjadhav4","description":"Learning GraphQL","archived":false,"fork":false,"pushed_at":"2020-12-15T10:22:30.000Z","size":130,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T13:51:34.299Z","etag":null,"topics":["graphql","graphql-js"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/akshayjadhav4.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":"2020-12-15T10:21:44.000Z","updated_at":"2020-12-15T10:24:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"67755316-308b-48ef-8883-cb7f821eb30d","html_url":"https://github.com/akshayjadhav4/graphQL-learning","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/akshayjadhav4/graphQL-learning","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshayjadhav4%2FgraphQL-learning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshayjadhav4%2FgraphQL-learning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshayjadhav4%2FgraphQL-learning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshayjadhav4%2FgraphQL-learning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akshayjadhav4","download_url":"https://codeload.github.com/akshayjadhav4/graphQL-learning/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshayjadhav4%2FgraphQL-learning/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32577121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","graphql-js"],"created_at":"2025-03-27T13:51:31.968Z","updated_at":"2026-05-03T16:32:25.477Z","avatar_url":"https://github.com/akshayjadhav4.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Learning GraphQL\n\n## Create Schema\n\n```\nimport { buildSchema } from \"graphql\";\n\nconst schema = buildSchema(`\n    \u003c!-- defining types and fields on  type Course  --\u003e\n    type Course {\n        id: ID\n        courceName: String\n        category: String\n        price: Int\n        language: String\n        email: String\n        stack: Stack\n        teachingAssists: [TeachingAssists] //refernce to another type TeachingAssists\n    }\n\n    type TeachingAssists {\n        firstName: String\n        lastName : String\n        experience: Int\n    }\n\n    \u003c!-- enums --\u003e\n    enum Stack {\n        REACT\n        MERN\n        GraphQL\n        JS\n        REACT NATIVE\n        FLUTTER\n        IOS\n    }\n\n    \u003c!-- Query type used to query data (Read data)--\u003e\n    type Query {\n        getCourse(id: ID): Course //defined method to get Course data\n    }\n\n    \u003c!-- to add data we use input --\u003e\n    input CourseInput {\n        id: ID\n        courceName: String! // ! symbol used to make field required while getting input\n        category: String!\n        price: Int!\n        language: String\n        email: String\n        stack: Stack\n        teachingAssists: TeachingAssists\n    }\n\n    \u003c!-- Mutation used to modify server-side data (saving data in DB) --\u003e\n    type Mutation {\n        createCourse(input: CourseInput): Course\n    }\n`);\n\nexport default schema;\n\n```\n\n## Create Resolver\n\n_Not saving data in DB (saving in local object)_\n\n```\nimport { nanoid } from \"nanoid\";\n\nclass Course {\n  constructor(\n    id,\n    { courceName, category, price, language, email, stack, teachingAssists }\n  ) {\n    this.id = id;\n    this.courceName = courceName;\n    this.category = category;\n    this.price = price;\n    this.language = language;\n    this.email = email;\n    this.stack = stack;\n    this.teachingAssists = teachingAssists;\n  }\n}\n\u003c!-- local object to save data --\u003e\nconst CourseHolder = {};\n\n\u003c!-- all method working --\u003e\nconst resolvers = {\n  getCourse: ({ id }) =\u003e {\n    return new Course(id, CourseHolder[id]);\n  },\n  createCourse: ({ input }) =\u003e {\n    let id = nanoid();\n    CourseHolder[id] = input;\n    return new Course(id, input);\n  },\n};\n\n\nexport default resolvers;\n```\n\n## GraphQL setup\n\n```\nimport express from \"express\";\nimport resolvers from \"./resolvers\";\nimport schema from \"./schema\";\nimport { graphqlHTTP } from \"express-graphql\";\n\nconst app = express();\n\napp.get(\"/\", (req, res) =\u003e {\n  res.send(\"Set up Done.\");\n});\n\n\nconst root = resolvers;\n//graphiql:true flag gives web ui to work with GraphQL\napp.use(\"/graphql\", graphqlHTTP({ schema, rootValue: root, graphiql: true }));\n\nconst PORT = ANY_PORT_NUMBER;\napp.listen(PORT, () =\u003e console.log(`Server Running on port ${PORT}`));\n\n```\n\n## To run\n\ngo to **localhost:port/graphql** in browser and GraphQL window will open.\n\n**Mutation operation (Creating Course)**\n\n```\nmutation{\n  createCourse(input:{\n     courceName: \"GraphQL\"\n        category: \"WEB\"\n        price: 299\n        language: \"English\"\n        email: \"teach@one.com\"\n        stack: GraphQL\n    \t\tteachingAssists: [{\n          firstName:\"Teacher\"\n          lastName:\"One\"\n          experience:5\n        },\n          {\n          firstName:\"Teacher\"\n          lastName:\"Two\"\n          experience:5\n        },\n\n        ]\n  }){\n    //here we are seecting values which we want to see from response\n    id\n    courceName\n  }\n}\n```\n\n**Result**\n![Mutation operation](./snapshots/Mutation.png)\n\n**Query operation (get data)**\n\n```\nquery{\n  getCourse(id:\"kmznLTLjB6evzPJ4wWNmp\"){\n    id\n    courceName\n    teachingAssists{\n      firstName\n      experience\n    }\n  }\n}\n```\n\n**Result**\n![Query operation](./snapshots/Query.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshayjadhav4%2Fgraphql-learning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakshayjadhav4%2Fgraphql-learning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshayjadhav4%2Fgraphql-learning/lists"}