@@ -11,114 +11,136 @@ interface LearnPageItem {
1111
1212const _items : Record < LearnPagePath , Omit < LearnPageItem , "title" > | null > = {
1313 introduction : {
14- description : "" ,
15- icon : "" ,
14+ description :
15+ "Get a high-level overview of GraphQL and how it enables flexible, versionless APIs powered by a strong type system." ,
16+ icon : new URL ( "./icons/computer.svg" , import . meta. url ) . href ,
1617 section : "getting-started" ,
1718 } ,
1819 schema : {
19- description : "" ,
20- icon : "" ,
20+ description :
21+ "Learn the elements of the GraphQL type system and how schemas describe your data and relationships." ,
22+ icon : new URL ( "./icons/hierarchy.svg" , import . meta. url ) . href ,
2123 section : "getting-started" ,
2224 } ,
2325 queries : {
24- description : "" ,
25- icon : "" ,
26+ description :
27+ "Use query operations to fetch exactly the data you need from a GraphQL server." ,
28+ icon : new URL ( "./icons/search.svg" , import . meta. url ) . href ,
2629 section : "getting-started" ,
2730 } ,
2831 mutations : {
29- description : "" ,
30- icon : "" ,
32+ description :
33+ "See how mutation operations write data and when side effects are allowed in GraphQL." ,
34+ icon : new URL ( "./icons/construction.svg" , import . meta. url ) . href ,
3135 section : "getting-started" ,
3236 } ,
3337 subscriptions : {
34- description : "" ,
35- icon : "" ,
38+ description :
39+ "Get real-time updates from a GraphQL server with long-lived subscription operations." ,
40+ icon : new URL ( "./icons/sync-square.svg" , import . meta. url ) . href ,
3641 section : "getting-started" ,
3742 } ,
3843 validation : {
39- description : "" ,
40- icon : "" ,
44+ description :
45+ "Validate operations against your schema to catch issues before execution." ,
46+ icon : new URL ( "./icons/product-check.svg" , import . meta. url ) . href ,
4147 section : "getting-started" ,
4248 } ,
4349 execution : {
44- description : "" ,
45- icon : "" ,
50+ description :
51+ "Understand how GraphQL resolves fields during execution to fulfill client requests." ,
52+ icon : new URL ( "./icons/board.svg" , import . meta. url ) . href ,
4653 section : "getting-started" ,
4754 } ,
4855 response : {
49- description : "" ,
50- icon : "" ,
56+ description :
57+ "Learn how GraphQL responses mirror queries, include data, and surface errors." ,
58+ icon : new URL ( "./icons/share.svg" , import . meta. url ) . href ,
5159 section : "getting-started" ,
5260 } ,
5361 introspection : {
54- description : "" ,
55- icon : "" ,
62+ description :
63+ "Ask a schema about its types and fields using GraphQL's introspection system." ,
64+ icon : new URL ( "./icons/zoom-page.svg" , import . meta. url ) . href ,
5665 section : "getting-started" ,
5766 } ,
5867 // ---
5968 "best-practices" : {
60- description : "" ,
61- icon : "" ,
69+ description :
70+ "Practical guidance for networking, authorization, pagination, and other everyday GraphQL concerns." ,
71+ icon : new URL ( "./icons/books.svg" , import . meta. url ) . href ,
6272 section : "best-practices" ,
6373 } ,
6474 "thinking-in-graphs" : {
65- description : "" ,
66- icon : "" ,
75+ description :
76+ "Model your business domain as a graph and use schemas to express connected types." ,
77+ icon : new URL ( "./icons/layer.svg" , import . meta. url ) . href ,
6778 section : "best-practices" ,
6879 } ,
6980 "serving-over-http" : {
70- description : "" ,
71- icon : "" ,
81+ description :
82+ "Follow HTTP guidelines to respond to GraphQL queries and mutations over the web." ,
83+ icon : new URL ( "./icons/globe.svg" , import . meta. url ) . href ,
7284 section : "best-practices" ,
7385 } ,
7486 "file-uploads" : {
75- description : "" ,
76- icon : "" ,
87+ description :
88+ "Understand why file uploads are tricky in GraphQL and safer patterns to support them." ,
89+ icon : new URL ( "./icons/note.svg" , import . meta. url ) . href ,
7790 section : "best-practices" ,
7891 } ,
7992 authorization : {
80- description : "" ,
81- icon : "" ,
93+ description :
94+ "Design authorization in your schema to control which users can access specific data." ,
95+ icon : new URL ( "./icons/key.svg" , import . meta. url ) . href ,
8296 section : "best-practices" ,
8397 } ,
8498 pagination : {
85- description : "" ,
86- icon : "" ,
99+ description :
100+ "Paginate lists and connections so clients can traverse large graphs efficiently." ,
101+ icon : new URL ( "./icons/menu.svg" , import . meta. url ) . href ,
87102 section : "best-practices" ,
88103 } ,
89104 "schema-design" : {
90- description : "" ,
91- icon : "" ,
105+ description :
106+ "Evolve schemas without versioning while keeping types clear and future-friendly." ,
107+ icon : new URL ( "./icons/cog-double.svg" , import . meta. url ) . href ,
92108 section : "best-practices" ,
93109 } ,
94110 "global-object-identification" : {
95- description : "" ,
96- icon : "" ,
111+ description :
112+ "Expose global object IDs so clients can refetch, cache, and reference data reliably." ,
113+ icon : new URL ( "./icons/dna.svg" , import . meta. url ) . href ,
97114 section : "best-practices" ,
98115 } ,
99116 caching : {
100- description : "" ,
101- icon : "" ,
117+ description :
118+ "Use identifiers and response patterns that enable effective caching for GraphQL clients and servers." ,
119+ icon : new URL ( "./icons/sync-square.svg" , import . meta. url ) . href ,
102120 section : "best-practices" ,
103121 } ,
104122 performance : {
105- description : "" ,
106- icon : "" ,
123+ description :
124+ "Optimize GraphQL requests and implementations for fast, efficient performance." ,
125+ icon : new URL ( "./icons/startup.svg" , import . meta. url ) . href ,
107126 section : "best-practices" ,
108127 } ,
109128 security : {
110- description : "" ,
111- icon : "" ,
129+ description :
130+ "Protect GraphQL APIs against common attack vectors with layered security practices." ,
131+ icon : new URL ( "./icons/safe.svg" , import . meta. url ) . href ,
112132 section : "best-practices" ,
113133 } ,
114134 federation : {
115- description : "" ,
116- icon : "" ,
135+ description :
136+ "Compose multiple services into a single graph using GraphQL federation." ,
137+ icon : new URL ( "./icons/globe.svg" , import . meta. url ) . href ,
117138 section : "best-practices" ,
118139 } ,
119140 "debug-errors" : {
120- description : "" ,
121- icon : "" ,
141+ description :
142+ "Identify common HTTP and GraphQL errors and debug them effectively." ,
143+ icon : new URL ( "./icons/solve.svg" , import . meta. url ) . href ,
122144 section : "best-practices" ,
123145 } ,
124146}
0 commit comments