{"id":23449663,"url":"https://github.com/gnobroga/graphql","last_synced_at":"2025-09-02T23:32:33.559Z","repository":{"id":217755206,"uuid":"744360027","full_name":"GNobroga/GraphQL","owner":"GNobroga","description":"Contém informações de como usar o GraphQL, criar queries, mutations, com a utilização do Apollo Server","archived":false,"fork":false,"pushed_at":"2024-01-18T17:31:01.000Z","size":14,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-22T06:03:49.306Z","etag":null,"topics":[],"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/GNobroga.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":"2024-01-17T06:17:32.000Z","updated_at":"2024-02-01T22:24:32.000Z","dependencies_parsed_at":"2024-01-18T05:54:52.967Z","dependency_job_id":"a59136b4-6c4f-4ffa-a6d3-32837c34a4a1","html_url":"https://github.com/GNobroga/GraphQL","commit_stats":null,"previous_names":["gnobroga/graphql"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GNobroga/GraphQL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GNobroga%2FGraphQL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GNobroga%2FGraphQL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GNobroga%2FGraphQL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GNobroga%2FGraphQL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GNobroga","download_url":"https://codeload.github.com/GNobroga/GraphQL/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GNobroga%2FGraphQL/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266913747,"owners_count":24005582,"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-24T02:00:09.469Z","response_time":99,"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":[],"created_at":"2024-12-23T23:28:33.831Z","updated_at":"2025-07-24T22:35:21.668Z","avatar_url":"https://github.com/GNobroga.png","language":"JavaScript","readme":"# GraphQL\n\nGraphQL é uma linguagem de consulta para API\n\n## Types\n\n### Primitive Types\n\n- String\n\n- Float\n\n- Boolean\n\n- ID\n\n- Int\n\n\n### Scalar\n\nA palavra chave **scalar** permite declarar um tipo escalar, ou seja, um tipo customizado. A lógica de serializar e deserializar um tipo scalar é a gente que faz. Por padrão ele sempre tenta serializar e deserializar para **String**.\n\n\n```graphql\n\n  scalar DateTime\n\n  type Query {\n    sayHello: String\n    currentTime: DateTime\n  }\n\n```\n\n## Query\n\nPor default tudo que for colocado dentro de **{}** é considerado uma **Query**.\n\n```graphql\n    {\n        name: String!\n        lastName: String\n    }\n\n    # ou\n\n    query  {\n        date,\n        users {\n            id\n        }\n    }\n\n    # ou\n\n    query Query {\n        name\n    }\n```\n\nO operador **!** indica que o name é non-nullable, ou seja, não vai aceitar valor null.\n\n## Resolvers\n\nPara cada consulta ou estrutura montada no **typeDefs** é necessário criar um resolver. Um resolver serve para resolver os dados que a consulta precisa para ser feita, seja obtendo os dados de um banco ou qualquer outra fonte de dados.\n\n```js\n\nconst typeDefs = `\n    \n    #graphql\n\n    type Query {\n        id: String!\n        name: String!\n    }\n`;\n\nconst resolvers = {\n    Query: {\n        id: () =\u003e 1,\n        name: () =\u003e 'Gabriel',\n    },\n}\n\nCaso uma propriedade seja diferente que a especifica na consulta, por exemplo, **usuario_logado** e **usuarioLogado** o GraphQL não irá conseguir mapear a propriedade corretamente. Pra resolver isso é possível criar um resolver pra solucionar o problema. \n\n```\n\n## Create types\n\n```graphql\n\n    type Product {\n        id: ID\n        name: String!\n        description: String\n        price: Float!\n    }\n\n    type Query {\n        product: Product\n    }\n```\n\nConsultando\n\n```graphql\n\n    query {\n        product {\n            id\n            name\n        }\n    }\n```\n\n## Others\n\n[Fragmentos](/consult-with-fragment/FRAGMENT.md)\n\n[Parâmetros](/consult-with-parameters/PARAMETERS.md)\n\n[Enums](/enums/ENUM.md)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnobroga%2Fgraphql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgnobroga%2Fgraphql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnobroga%2Fgraphql/lists"}