mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2025-08-31 21:11:44 +02:00
845 lines
41 KiB
JSON
845 lines
41 KiB
JSON
{
|
|
"JfXwzkN29UGz17FYHHE3A": {
|
|
"title": "Introduction",
|
|
"description": "GraphQL is a query language and runtime for APIs that enables clients to request exactly the data they need in a single call. It provides a predictable format, reducing multiple API calls and eliminating over-fetching, making data retrieval more efficient than traditional REST APIs.\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Introduction to GraphQL",
|
|
"url": "https://graphql.org/learn/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Getting started with GraphQL",
|
|
"url": "https://graphql.org/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Explore top posts about GraphQL",
|
|
"url": "https://app.daily.dev/tags/graphql?ref=roadmapsh",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"cMfsRtvzvDZZJ0TqeUOxm": {
|
|
"title": "What is GraphQL",
|
|
"description": "GraphQL is a query language for APIs and server-side runtime that lets clients request exactly the data they need. Unlike REST, it uses a type system to define data structure and allows fetching multiple resources in a single request, reducing over-fetching and under-fetching problems.\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Introduction to graphQL",
|
|
"url": "https://graphql.org/learn/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Tutorial - What is graphQL?",
|
|
"url": "https://www.howtographql.com/basics/0-introduction/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Explore top posts about GraphQL",
|
|
"url": "https://app.daily.dev/tags/graphql?ref=roadmapsh",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"2rlmLn_yQQV-7DpX1qT98": {
|
|
"title": "Problems GraphQL Solves",
|
|
"description": "GraphQL solves major API problems including over-fetching (getting unnecessary data), under-fetching (multiple requests needed), inefficient versioning, and lack of flexibility. It enables precise data requests, single queries for multiple resources, seamless versioning through schema evolution, and microservice communication through federation.",
|
|
"links": []
|
|
},
|
|
"J5mU0v491qrm-mr1W3Msd": {
|
|
"title": "Thinking in Graphs",
|
|
"description": "\"Thinking in Graphs\" is a GraphQL mindset where data is organized as a graph with nodes (objects) and edges (relationships). This approach allows flexible and intuitive querying by following relationships between connected data points, making complex data retrieval more natural and efficient.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "GraphQL - Thinking in Graphs",
|
|
"url": "https://graphql.org/learn/thinking-in-graphs/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"W_Lg8086ZhrIqtck1sgnb": {
|
|
"title": "GraphQL Queries",
|
|
"description": "GraphQL queries are client requests to retrieve specific data from a server. They specify exactly which fields should be returned, using a hierarchical structure that matches the data requirements. Queries are written in GraphQL syntax and executed by the server to fetch the requested data.\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "What are GraphQL Queries?",
|
|
"url": "https://graphql.org/learn/queries/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Explore top posts about GraphQL",
|
|
"url": "https://app.daily.dev/tags/graphql?ref=roadmapsh",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"6r9XbwlBtHmJrhviG2cTD": {
|
|
"title": "GraphQL on Frontend",
|
|
"description": "GraphQL on the frontend enables efficient data fetching with clients like Apollo, URQL, or Relay. It provides declarative data requirements, intelligent caching, real-time subscriptions, and type safety, allowing frontend applications to request exactly the data they need in a single query.\n\nLearn more from following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get started with GraphQL on the frontend",
|
|
"url": "https://www.howtographql.com/react-apollo/0-introduction/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Explore top posts about Frontend Development",
|
|
"url": "https://app.daily.dev/tags/frontend?ref=roadmapsh",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"ODQ8zrHc2rsc8PN-APKvz": {
|
|
"title": "GraphQL on Backend",
|
|
"description": "GraphQL on the backend involves implementing servers that execute GraphQL queries, mutations, and subscriptions. It includes defining schemas, writing resolvers, handling data sources, implementing authentication/authorization, and optimizing performance through caching and batching strategies.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "How to use GraphQL in Backend?",
|
|
"url": "https://www.howtographql.com/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Explore top posts about Backend Development",
|
|
"url": "https://app.daily.dev/tags/backend?ref=roadmapsh",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"2SU4dcaz7zwGsF7g8FjmI": {
|
|
"title": "What are Queries?",
|
|
"description": "In GraphQL, queries are client requests to retrieve data from the server. They're structured as hierarchical trees of fields that correspond to the properties of the requested data, allowing clients to specify exactly what data they need in a predictable format.\n\nLearn more from following links:",
|
|
"links": [
|
|
{
|
|
"title": "Introduction of GraphQL - Query",
|
|
"url": "https://graphql.org/learn/queries/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"Pc9H7AcoqJQkWnuhbytyD": {
|
|
"title": "Fields",
|
|
"description": "Fields in GraphQL are individual pieces of data that can be queried or modified, representing properties of the requested data. They're defined in the GraphQL schema and serve as building blocks for queries and mutations, specifying what data is available for each type.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "GraphQL: Types and Fields",
|
|
"url": "https://graphql.org/learn/queries/#fields",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"B77yLU4SuRChSjEbmYwc-": {
|
|
"title": "Aliases",
|
|
"description": "Aliases in GraphQL rename fields in query responses, useful when requesting the same field multiple times with different arguments or when field names aren't suitable for client usage. They distinguish fields in responses and improve query readability and usability.\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "What are GraphQL Aliases?",
|
|
"url": "https://graphql.org/learn/queries/#aliases",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"hrpb108R8Gyu3hhzkMYzL": {
|
|
"title": "Arguments",
|
|
"description": "Arguments in GraphQL are values passed to fields or directives to specify execution details like filtering, sorting, pagination, or configuration options. They're passed as key-value pairs, can be defined as variables, and may be optional or required depending on the field definition.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "GraphQL - Arguments",
|
|
"url": "https://graphql.org/learn/queries/#arguments",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"MnmwccPahqPCzOhqjfbsY": {
|
|
"title": "Directives",
|
|
"description": "Directives in GraphQL modify query execution by adding behavior or validation to fields, operations, and fragments. They can take arguments to configure behavior and include built-in directives like @include and @skip, or custom ones defined by developers for specific functionality.\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Directives in GraphQL",
|
|
"url": "https://graphql.org/learn/queries/#directives",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"YZaFEK547FYricfOuANvH": {
|
|
"title": "Variables",
|
|
"description": "Variables in GraphQL pass dynamic values to queries and mutations, making them flexible and reusable. Defined with the $ symbol and a type, their values are passed in a separate JSON object. Variables are type-safe, ensuring values match the defined types.\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "GraphQL Variables",
|
|
"url": "https://dgraph.io/docs/graphql/api/variables/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Intro to Variables in GraphQL",
|
|
"url": "https://graphql.org/learn/queries/#variables",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"CehwjrCG_wbUU-TFNCuJn": {
|
|
"title": "Fragments",
|
|
"description": "Fragments in GraphQL are reusable pieces of queries that retrieve specific fields from one or more types. Defined with the \"fragment\" keyword, they promote code reuse, reduce duplication, and make complex queries more maintainable by separating common field selections.\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Intro to Fragments in GraphQL",
|
|
"url": "https://graphql.org/learn/queries/#fragments",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"jy_91mhFWbpR6sYVbuX1x": {
|
|
"title": "Mutations",
|
|
"description": "Mutations in GraphQL are used to modify data on the server, including creating, updating, or deleting records. They're structured like queries but use the \"mutation\" field at the top level and include fields specifying the data to be changed and the operation type.\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Getting started with Mutations",
|
|
"url": "https://graphql.org/learn/queries/#mutations",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"9Q2pGidY-rfkltHq3vChp": {
|
|
"title": "What are Mutations?",
|
|
"description": "Mutations in GraphQL are operations used to modify data on the server - creating, updating, or deleting records. They're structured like queries but use the \"mutation\" field at the top level and include fields specifying the data to be changed and the operation type.\n\nLearn more from the following resources:",
|
|
"links": [
|
|
{
|
|
"title": "Get started with Mutations",
|
|
"url": "https://graphql.org/learn/mutations/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"AySlY8AyI6jE-cy-qKKOU": {
|
|
"title": "Multiple Fields in Mutation",
|
|
"description": "GraphQL allows multiple mutations in a single query by including multiple mutation fields, called batching or chaining mutations. This enables performing several data modifications atomically, improving efficiency and ensuring consistent state changes across related operations.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Guide to Multiple fields in mutations",
|
|
"url": "https://graphql.org/learn/mutations/#multiple-fields-in-mutations",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"q9TYEygvUyHourdZIvk8G": {
|
|
"title": "Operation Name",
|
|
"description": "Operation names are optional identifiers for GraphQL queries and mutations that help uniquely identify operations in documents with multiple operations. They provide meaningful names for operations, improve debugging, and make error identification easier in complex applications.\n\nLearn more from the following resources:",
|
|
"links": [
|
|
{
|
|
"title": "Intro to Operation Name",
|
|
"url": "https://graphql.org/learn/queries/#operation-name",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"IbEqXlGjsyNLKE9dZrPPk": {
|
|
"title": "Subscriptions",
|
|
"description": "Subscriptions in GraphQL enable real-time updates by allowing clients to subscribe to specific events or data changes on the server. The server maintains an open connection and pushes updates to subscribed clients as soon as events occur or data changes.\n\nLearn more from following links:",
|
|
"links": [
|
|
{
|
|
"title": "Subscriptions and Live Queries - Real Time with GraphQL",
|
|
"url": "https://the-guild.dev/blog/subscriptions-and-live-queries-real-time-with-graphql",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"RlBc-hWEUOPaEQLTgJa-K": {
|
|
"title": "What are Subscriptions",
|
|
"description": "Subscriptions in GraphQL enable real-time updates by allowing clients to subscribe to specific events or data changes on the server. They're structured like queries with a \"subscription\" field at the top level and push updates to clients as soon as events occur.\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "How GraphQL Subscriptions Work?",
|
|
"url": "https://the-guild.dev/blog/subscriptions-and-live-queries-real-time-with-graphql",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"kJMyRhasBKfBypent3GxK": {
|
|
"title": "Event Based Subscriptions",
|
|
"description": "Event-based subscriptions in GraphQL provide real-time updates by subscribing to specific events or data changes. Clients maintain persistent connections through WebSockets to receive live updates when subscribed events occur, enabling reactive applications with real-time functionality.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "GraphQL Subscriptions",
|
|
"url": "https://the-guild.dev/blog/subscriptions-and-live-queries-real-time-with-graphql",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "GraphQL Subscriptions Documentation",
|
|
"url": "https://graphql.org/blog/subscriptions-in-graphql-and-relay/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"CHdzww8_TNfeM6Bp1oTPI": {
|
|
"title": "Live Queries",
|
|
"description": "Live Queries automatically update query results when underlying data changes, providing real-time synchronization without manual subscription management. This advanced feature simplifies building reactive applications by maintaining fresh data automatically, though it requires specialized GraphQL implementations.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "GraphQL Live Queries",
|
|
"url": "https://the-guild.dev/blog/collecting-graphql-live-query-resource-identifier-with-graphql-tools",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"t6XxFB_lx27kS4FE2_GMH": {
|
|
"title": "@defer / @stream directives",
|
|
"description": "Defer and Stream directives are experimental GraphQL features for incremental data delivery. @defer postpones non-critical fields to improve initial response times, while @stream sends list items progressively, enabling better user experiences with large datasets and slow-loading fields.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Defer and Stream in GraphQL",
|
|
"url": "https://the-guild.dev/graphql/yoga-server/docs/features/defer-stream",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"lj1WEh4WbfBsoZFYsi1Yz": {
|
|
"title": "Schema",
|
|
"description": "A GraphQL schema defines the structure and capabilities of a GraphQL API using Schema Definition Language (SDL). It specifies types, fields, arguments, relationships, and root operations (Query, Mutation, Subscription) that serve as entry points, acting as a contract between client and server.\n\nVisit the following resources to learn more:",
|
|
"links": [
|
|
{
|
|
"title": "What is Schema?",
|
|
"url": "https://graphql.org/learn/schema/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"jpu0_FAlxtD-H80mPcod5": {
|
|
"title": "Type System",
|
|
"description": "GraphQL is strongly typed with a type system that defines data types available in applications. It includes Scalar, Object, Query, Mutation, and Enum types. The type system defines the schema, acting as a contract between client and server for predictable API interactions.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get started with Type system",
|
|
"url": "https://graphql.org/learn/schema/#type-system",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"HPdntdgTar1T34CZX8Y6y": {
|
|
"title": "Fields",
|
|
"description": "Fields in GraphQL are units of data that can be queried or manipulated. Each field has a name, type, and optional description, and can return scalar values or objects, enabling complex nested data structures and taking arguments for filtering.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "GraphQL: Types and Fields",
|
|
"url": "https://graphql.org/learn/queries/#fields",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"U-tLelmNQtR-pUq-sxU_2": {
|
|
"title": "Scalars",
|
|
"description": "Scalars are \"leaf\" values in GraphQL representing primitive data types. Built-in scalars include String, Int, Float, Boolean, and ID for unique identifiers. Custom scalars can be defined for specific needs like dates, JSON, or large integers, extending the type system beyond basic primitives.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get started with Scalars in GraphQL",
|
|
"url": "https://graphql.org/learn/schema/#scalar-types",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"wfOsfb0zSAIdNkwFHfBcw": {
|
|
"title": "Enums",
|
|
"description": "Enums (enumeration types) are special scalars restricted to a particular set of allowed values. They validate arguments against allowed values and communicate through the type system that fields will always be one of a finite set of predefined options.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "What are Enums?",
|
|
"url": "https://graphql.org/learn/schema/#enumeration-types",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"tc_rjJZrr2x3bp8mcoQ0F": {
|
|
"title": "Interfaces",
|
|
"description": "Interfaces in GraphQL define a set of fields that implementing types must include. They enable polymorphism by allowing common field querying across different types that implement the same interface, promoting code reuse and consistent API design.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get started with Interfaces",
|
|
"url": "https://graphql.org/learn/schema/#interfaces",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"d2ikbo4sZq7PmaCi5znkd": {
|
|
"title": "Lists",
|
|
"description": "Lists in GraphQL represent ordered collections of items, defined using square brackets around the item type. They can contain scalars, objects, or other lists, enabling complex nested data structures and array-based field returns in schemas.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get started with Lists",
|
|
"url": "https://graphql.org/learn/schema/#lists-and-non-null",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"LX9vZpx7yKlf0iR6AtBWz": {
|
|
"title": "Objects",
|
|
"description": "Objects in GraphQL are types that represent groups of fields, defining the structure of queries and mutations. Each field can return scalar values or other objects, enabling complex nested data structures. Objects are defined using the \"type\" keyword followed by the name and field definitions.\n\nTo learn more, visit the following:",
|
|
"links": [
|
|
{
|
|
"title": "Object Types and Fields",
|
|
"url": "https://graphql.org/learn/schema/#object-types-and-fields",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Object Types",
|
|
"url": "https://graphql.org/graphql-js/object-types/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"59COH3rerJJzKr6vrj4bF": {
|
|
"title": "Unions",
|
|
"description": "Unions allow fields to return multiple types, enabling different handling for various types in clients. They provide schema flexibility by grouping types together, though they don't allow common field querying across types like interfaces do.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get started with Union in GraphQL",
|
|
"url": "https://graphql.org/learn/schema/#union-types",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"A54vi3Ao7fBHyTuqoH_it": {
|
|
"title": "Arguments",
|
|
"description": "Arguments in GraphQL are values passed to fields in queries and mutations to filter or modify returned data. They're defined in the schema with a name, type, and optional default value, enabling dynamic data retrieval.\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get started with Arguments in GraphQL",
|
|
"url": "https://graphql.org/learn/schema/#arguments",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"iYkHCKTsjtvo40f3eZoet": {
|
|
"title": "Validation",
|
|
"description": "Validation in GraphQL ensures queries and mutations conform to schema rules and constraints. It checks for required fields, correct argument types, and value ranges before execution, preventing invalid operations and improving API reliability.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get Started with Validation in GraphQL",
|
|
"url": "https://graphql.org/learn/validation/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"72wGg6yP8WnEdmkeKL9vh": {
|
|
"title": "Execution",
|
|
"description": "Execution in GraphQL is the process of running queries or mutations and returning results to clients. The GraphQL engine performs parsing, validation, and data retrieval steps to produce the final response, coordinating resolver functions to fetch data from various sources.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get Started with Execution in GraphQL",
|
|
"url": "https://graphql.org/learn/execution/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Intro to Execution",
|
|
"url": "https://graphql.org/graphql-js/execution/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"AlJlHZD3_SPoLNaqdM-pB": {
|
|
"title": "Root Fields",
|
|
"description": "Root fields are the top-level fields available to clients in GraphQL queries and mutations. They serve as entry points for client requests, with Query fields for retrieving data and Mutation fields for modifying data on the server.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get Started with Root Feilds",
|
|
"url": "https://graphql.org/learn/execution/#root-fields-resolvers",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"VDur5xYBC0LJtQgDrSEyj": {
|
|
"title": "Resolvers",
|
|
"description": "Resolvers are functions responsible for fetching data for each field in GraphQL queries and mutations. Defined in the schema and executed by the GraphQL server, they retrieve data from databases, APIs, or other sources and return it to clients.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Guide to Resolver",
|
|
"url": "https://the-guild.dev/blog/better-type-safety-for-resolvers-with-graphql-codegen",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"uPpsj2kCdgKsJpmTaw86u": {
|
|
"title": "Synchronous",
|
|
"description": "Synchronous resolvers in GraphQL execute immediately and return their results directly without waiting for external operations. They complete their execution before returning any value, making them simpler but potentially blocking if they perform complex computations.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "GraphQL Execution",
|
|
"url": "https://graphql.org/learn/execution/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Understanding Resolvers",
|
|
"url": "https://www.apollographql.com/docs/apollo-server/data/resolvers/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"tbDvQBtLRAcD-xYX9V7Va": {
|
|
"title": "Asynchronous",
|
|
"description": "Asynchronous resolvers in GraphQL are functions that return promises instead of immediate values. They allow resolvers to wait for external operations like database queries or API calls to complete before returning results, enabling non-blocking execution.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get Started with Asynchronous",
|
|
"url": "https://graphql.org/learn/execution/#asynchronous-resolvers",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"QFUOmJlPkkjpcl1vJxg9h": {
|
|
"title": "Scalar Coercion",
|
|
"description": "Scalar coercion in GraphQL converts input values from one type to another when they don't match the expected type but can be successfully converted. This process is implemented using custom scalar types with coerce functions that handle the type conversion.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get started with Scalar coercion",
|
|
"url": "https://graphql.org/learn/execution/#scalar-coercion",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"sJ1_c3e08aehiqNMbIEEP": {
|
|
"title": "Lists",
|
|
"description": "Lists in GraphQL represent ordered collections of items and can be used as return types for fields. They can contain any type of items including scalars and objects, with resolver functions typically returning data as arrays from databases or APIs.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get started with Lists and Non-Null",
|
|
"url": "https://graphql.org/learn/schema/#lists-and-non-null",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"I4wNBXV4xEZ0LWBhv5FwF": {
|
|
"title": "Validation",
|
|
"description": "Validation in GraphQL ensures queries and mutations adhere to schema rules by verifying field access, type correctness, and input constraints. GraphQL servers validate all incoming operations before execution, returning errors for invalid queries with specific details about violations.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get Started with Validation in GraphQL",
|
|
"url": "https://graphql.org/learn/validation/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"zQHifboRreE4OgJ7GnUlp": {
|
|
"title": "Producing the Result",
|
|
"description": "Producing the result in GraphQL involves generating the final response to queries and mutations. This process includes parsing the request, validating against the schema, executing resolvers to fetch data, and formatting the response according to the query requirements.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get Started with GraphQL",
|
|
"url": "https://graphql.org/learn/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"inhjhH-7xJyX8o4DQqErF": {
|
|
"title": "Serving over Internet",
|
|
"description": "Serving GraphQL over the internet involves making a GraphQL server accessible to clients through a public IP address or domain name. This can be done using reverse proxies, cloud services, or serverless functions to expose the GraphQL endpoint publicly.\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Introduction to Serving over HTTPs",
|
|
"url": "https://graphql.org/learn/serving-over-http/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"V3bgswBFr1xames3F8S_V": {
|
|
"title": "GraphQL Over HTTP Spec",
|
|
"description": "The GraphQL over HTTP specification defines standard practices for serving GraphQL over HTTP, including request/response formats, status codes, and content types. It ensures interoperability between different GraphQL implementations and provides guidance for consistent API behavior across platforms.",
|
|
"links": []
|
|
},
|
|
"UYwuUVTeurwODV4_Kdt_W": {
|
|
"title": "Caching",
|
|
"description": "Caching in GraphQL improves performance by storing query results for reuse. Strategies include HTTP caching, response caching, dataloader for batching requests, and normalized caching at the client level to reduce redundant API calls and improve user experience.\n\nThere are several types of caching that can be used in GraphQL:\n\n* Client-side caching\n* Server-side caching\n* CDN caching\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get started with Caching",
|
|
"url": "https://graphql.org/learn/caching/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"v9gVexHfDkpG9z3NL5S-9": {
|
|
"title": "Batching",
|
|
"description": "Batching in GraphQL combines multiple queries into a single request to reduce network overhead and improve performance. DataLoader is a common pattern that batches and caches database requests, preventing N+1 query problems and optimizing data fetching efficiency.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "DataLoader",
|
|
"url": "https://github.com/graphql/dataloader",
|
|
"type": "opensource"
|
|
},
|
|
{
|
|
"title": "Solving the N+1 Problem",
|
|
"url": "https://shopify.engineering/solving-the-n-1-problem-for-graphql-through-batching",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"i-zcfN6RNXhA_sb7DcIon": {
|
|
"title": "Authorization",
|
|
"description": "Authorization in GraphQL refers to the process of controlling access to specific fields, types, or operations in a GraphQL schema based on user roles or permissions. It allows you to restrict access to certain data or functionality in your application based on the user's role or permissions.\n\nThere are several ways to implement authorization in GraphQL:\n\n* Using middleware\n* Using schema directives\n* Using a data source layer\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get Started with Authorization",
|
|
"url": "https://graphql.org/learn/authorization/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Explore top posts about Authorization",
|
|
"url": "https://app.daily.dev/tags/authorization?ref=roadmapsh",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"A-PQ3_FVuCK3Eud75hsdj": {
|
|
"title": "Specification",
|
|
"description": "The GraphQL specification is the official standard that defines the GraphQL query language, type system, execution algorithm, and validation rules. It ensures consistency across different GraphQL implementations and serves as the authoritative reference for developers building GraphQL services and tools.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "GraphQL Specification",
|
|
"url": "https://spec.graphql.org/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "GraphQL Foundation",
|
|
"url": "https://foundation.graphql.org/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"2YLm_S1j_832pb1OGSNaM": {
|
|
"title": "Realtime",
|
|
"description": "Realtime GraphQL enables live data updates through subscriptions, allowing clients to receive instant notifications when data changes. Implemented using WebSockets, Server-Sent Events, or polling, it's essential for chat applications, live feeds, and collaborative tools requiring immediate data synchronization.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get Started with Real Time with GraphQL",
|
|
"url": "https://the-guild.dev/blog/subscriptions-and-live-queries-real-time-with-graphql",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"GzwPvLybxTJM96fUhQUOi": {
|
|
"title": "Authorization",
|
|
"description": "Authorization in GraphQL refers to the process of controlling access to specific fields, types, or operations in a GraphQL schema based on user roles or permissions. It allows you to restrict access to certain data or functionality in your application based on the user's role or permissions.\n\nThere are several ways to implement authorization in GraphQL:\n\n* Using middleware\n* Using schema directives\n* Using a data source layer\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get Started with Authorization",
|
|
"url": "https://graphql.org/learn/authorization/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Explore top posts about Authorization",
|
|
"url": "https://app.daily.dev/tags/authorization?ref=roadmapsh",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"O8k-m6s9B_uXkLsXKVFnL": {
|
|
"title": "Specification",
|
|
"description": "The GraphQL specification defines the core language, type system, execution model, and validation rules for GraphQL. Maintained by the GraphQL Foundation, it provides the technical foundation that all GraphQL implementations must follow to ensure interoperability and consistency across platforms.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "GraphQL Specification",
|
|
"url": "https://spec.graphql.org/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "GraphQL Foundation",
|
|
"url": "https://foundation.graphql.org/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"G50ZMlmP7Ru5LcFne5Rhu": {
|
|
"title": "Authorization",
|
|
"description": "Authorization in GraphQL controls access to data and operations based on user permissions and roles. It can be implemented at the schema level, field level, or within resolvers, ensuring users only access data they're permitted to see through various authentication and permission strategies.\n\nThere are several ways to implement authorization in GraphQL:\n\n* Using middleware\n* Using schema directives\n* Using a data source layer\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get Started with Authorization",
|
|
"url": "https://graphql.org/learn/authorization/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Explore top posts about Authorization",
|
|
"url": "https://app.daily.dev/tags/authorization?ref=roadmapsh",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"Uf8XxJPs7RzKVhlxiQdbB": {
|
|
"title": "Pagination",
|
|
"description": "Pagination in GraphQL handles large datasets by breaking them into smaller chunks. Common approaches include cursor-based pagination (using cursors for stable pagination) and offset-based pagination (using skip/take), with cursor-based being preferred for performance and consistency.\n\nTo learn more, visit the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Get Started with Pagination",
|
|
"url": "https://graphql.org/learn/pagination/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"jCzrMElTo-c9xGcpPOOPl": {
|
|
"title": "GraphQL.js",
|
|
"description": "GraphQL.js is the reference implementation of GraphQL for JavaScript and Node.js. It provides the core functionality for parsing, validating, and executing GraphQL queries, serving as the foundation for many other GraphQL tools and libraries in the JavaScript ecosystem.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "GraphQL.js Repository",
|
|
"url": "https://github.com/graphql/graphql-js",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "GraphQL.js Documentation",
|
|
"url": "https://graphql.org/graphql-js/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"9nVo95gRNGHGIbaJQPH1x": {
|
|
"title": "GraphQL Go",
|
|
"description": "GraphQL Go refers to implementing GraphQL servers and clients using the Go programming language. Popular libraries include graphql-go/graphql for schema-first development and 99designs/gqlgen for code-first generation. Go's strong typing and performance make it excellent for building scalable GraphQL APIs.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "graphql-go/graphql",
|
|
"url": "https://github.com/graphql-go/graphql",
|
|
"type": "opensource"
|
|
},
|
|
{
|
|
"title": "99designs/gqlgen",
|
|
"url": "https://github.com/99designs/gqlgen",
|
|
"type": "opensource"
|
|
}
|
|
]
|
|
},
|
|
"7szipojhVb2VoL3VcS619": {
|
|
"title": "GraphQL Java",
|
|
"description": "GraphQL Java is a popular library for implementing GraphQL APIs in Java applications. It provides schema-first development capabilities, runtime query execution, and integrates well with Spring Boot and other Java frameworks, making it a solid choice for enterprise GraphQL implementations.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "GraphQL Java Repository",
|
|
"url": "https://github.com/graphql-java/graphql-java",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "GraphQL Java Documentation",
|
|
"url": "https://www.graphql-java.com/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"N-vsu-wvOikuoTbzdgX3X": {
|
|
"title": "graphql-http",
|
|
"description": "GraphQL over HTTP is a specification that defines how GraphQL queries and mutations should be transported over HTTP. It standardizes request/response formats, HTTP methods, status codes, and headers, ensuring consistent GraphQL API communication across different implementations.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "graphql-http Library",
|
|
"url": "https://github.com/graphql/graphql-http",
|
|
"type": "opensource"
|
|
},
|
|
{
|
|
"title": "GraphQL over HTTP Specification",
|
|
"url": "https://graphql.github.io/graphql-over-http/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"Gotb1xtxySCVC5MrnkPSs": {
|
|
"title": "GraphQL Yoga",
|
|
"description": "GraphQL Yoga is an open-source GraphQL server library for Node.js built on Express.js. It provides minimal boilerplate setup with built-in authentication, authorization, data validation, and subscription support for real-time updates, making GraphQL server development streamlined.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "GraphQL Armor - for Yoga Server 2",
|
|
"url": "https://the-guild.dev/blog/improved-security-with-graphql-armor-support-for-yoga-server-2",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Explore top posts about GraphQL",
|
|
"url": "https://app.daily.dev/tags/graphql?ref=roadmapsh",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"o_VkyoN6DmUUkfl0u0cro": {
|
|
"title": "Apollo Server",
|
|
"description": "Apollo Server is a popular open-source library for building GraphQL servers in JavaScript. It provides tools for parsing, validating, executing resolvers, and formatting responses with built-in features for authentication, authorization, data validation, and real-time subscriptions.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Apollo Tutorial - Introduction",
|
|
"url": "https://www.howtographql.com/react-apollo/0-introduction/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Explore top posts about Apollo",
|
|
"url": "https://app.daily.dev/tags/apollo?ref=roadmapsh",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"iTV2H8clmRTOksul4v38p": {
|
|
"title": "mercurius",
|
|
"description": "Mercurius is a high-performance GraphQL server library for Fastify, offering excellent performance and minimal memory usage. It provides schema-first development, built-in caching, subscriptions support, and integration with Fastify's ecosystem for building fast, scalable GraphQL APIs.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Mercurius Repository",
|
|
"url": "https://github.com/mercurius-js/mercurius",
|
|
"type": "opensource"
|
|
},
|
|
{
|
|
"title": "Mercurius Documentation",
|
|
"url": "https://mercurius.dev/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"datKo3vPDwXoyVskcrdkc": {
|
|
"title": "graphql-http",
|
|
"description": "GraphQL HTTP is a specification for serving GraphQL over HTTP protocol. It defines standard methods for sending queries and mutations, primarily using POST requests with JSON payloads in the request body, and receiving results in the response body.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Overview of GraphQL HTTP",
|
|
"url": "https://graphql.org/graphql-js/express-graphql/#graphqlhttp",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Get Started with GraphQL HTTP",
|
|
"url": "https://graphql.org/learn/serving-over-http/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Explore top posts about GraphQL",
|
|
"url": "https://app.daily.dev/tags/graphql?ref=roadmapsh",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"Ab_ngkf6bmejvcp9okuw6": {
|
|
"title": "Relay",
|
|
"description": "Relay is Facebook's GraphQL client designed for React applications, emphasizing performance and data consistency. It uses a declarative approach with fragments, automatic query optimization, pagination handling, and strict conventions for building scalable, efficient GraphQL applications.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "GraphQL Code Generator & Relay Compiler",
|
|
"url": "https://the-guild.dev/blog/graphql-codegen-relay-compiler",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"D5O7ky5eXwm_Ys1IcFNaq": {
|
|
"title": "Apollo Client",
|
|
"description": "Apollo Client is a popular GraphQL client library for JavaScript that provides data fetching, caching, and state management. It offers declarative data fetching with React hooks, intelligent caching, optimistic UI updates, and error handling for building efficient GraphQL-powered applications.\n\nLearn more from the following links:",
|
|
"links": [
|
|
{
|
|
"title": "Why Apollo Client - Frontend?",
|
|
"url": "https://www.howtographql.com/react-apollo/0-introduction/",
|
|
"type": "article"
|
|
},
|
|
{
|
|
"title": "Explore top posts about Apollo",
|
|
"url": "https://app.daily.dev/tags/apollo?ref=roadmapsh",
|
|
"type": "article"
|
|
}
|
|
]
|
|
},
|
|
"WP0Oo_YMfLBlXqDQQtKes": {
|
|
"title": "Urql",
|
|
"description": "URQL is a lightweight, highly customizable GraphQL client for React, Vue, and Svelte. It provides caching, real-time subscriptions, offline support, and a modular architecture with exchanges for extending functionality, offering an alternative to Apollo Client with better performance.\n\nVisit the following resources to learn more:",
|
|
"links": [
|
|
{
|
|
"title": "urql - Formidable Labs",
|
|
"url": "https://formidable.com/open-source/urql/",
|
|
"type": "article"
|
|
}
|
|
]
|
|
}
|
|
} |