ข้ามไปยังเนื้อหา

Glossary

EnglishThai Styleความหมาย
SchemaSchemacontract ระหว่าง client กับ server — กำหนดว่าขอข้อมูลอะไรได้ และได้อะไรกลับมา
ResolverResolverfunction ที่ดึงข้อมูลให้ field หนึ่ง ๆ
QueryQueryoperation สำหรับอ่านข้อมูล
MutationMutationoperation สำหรับเปลี่ยนแปลงข้อมูล
SubscriptionSubscriptionoperation สำหรับรับข้อมูล real-time ผ่าน persistent connection
FieldFieldproperty หนึ่งตัวบน type ที่ client ขอได้
TypeTypeโครงสร้างข้อมูลใน schema (Object Type, Scalar, Enum, Interface, Union)
ScalarScalartype พื้นฐานที่ไม่มี sub-field: String, Int, Float, Boolean, ID
EnumEnumset ของค่าที่เป็นไปได้ที่กำหนดใน schema
InterfaceInterfacecontract ที่ type หลายตัว implement ได้
UnionUniontype ที่เป็น type ใดก็ได้ในกลุ่มที่กำหนดไว้
DirectiveDirectiveคำสั่งพิเศษใน schema หรือ query เช่น @deprecated, @include
FragmentFragmentชุด field ที่ reuse ได้ข้าม query
OperationOperationquery, mutation, หรือ subscription หนึ่งชิ้น
Input TypeInput Typetype พิเศษสำหรับรับ argument ซับซ้อนใน mutation
Output TypeOutput Typetype ที่ resolver ส่งกลับมา
IntrospectionIntrospectionGraphQL query ที่ถามระบบว่า schema มีอะไรบ้าง
EnglishThai Styleความหมาย
PaginationPaginationการแบ่งผลลัพธ์เป็นหน้า ๆ
CursorCursorpointer ไปยัง item ใน dataset — ใช้ใน cursor-based pagination
ConnectionConnectionpattern มาตรฐานสำหรับ paginated list (Relay spec)
EdgeEdgewrapper ของ item ใน Connection — มี node และ cursor
NodeNodeitem หนึ่งชิ้นใน Connection
Offset PaginationOffset Paginationpagination ด้วย skip + limit — ง่ายแต่มีปัญหากับ concurrent update
EnglishThai Styleความหมาย
N+1 Query ProblemN+1 Query Problemปัญหา performance ที่เกิดจากการ query ซ้ำ N ครั้งสำหรับ N item
DataLoaderDataLoaderutility ที่ batch และ cache database query เพื่อแก้ N+1
Persisted QueryPersisted Queryquery ที่ hash ไว้ล่วงหน้า ส่งแค่ ID แทน query string เต็ม
FederationFederationpattern รวมหลาย GraphQL service เข้าเป็น graph เดียว
SubgraphSubgraphGraphQL service หนึ่งตัวใน federated architecture
GatewayGatewayentry point ที่รวม subgraph ทั้งหมดสำหรับ client
Schema StitchingSchema Stitchingวิธีเก่าในการรวม schema หลายตัว (ก่อน Federation)
RESTGraphQL
Endpointหลาย endpoint ต่อ resourcesingle endpoint /graphql
Responseขนาดตาม server กำหนดขนาดตาม client กำหนด
Versioning/v1/, /v2/schema evolution ผ่าน deprecation
Over-fetchingเกิดบ่อยไม่เกิด — client เลือก field เอง
Under-fetchingเกิดบ่อยไม่เกิด — query nested ได้ครั้งเดียว
Cachingง่าย — HTTP cache per URLซับซ้อนกว่า — ต้องใช้ persisted query
Type Safetyขึ้นกับ OpenAPI/documentationbuilt-in — schema คือ contract
  • API ง่ายมาก — REST endpoints 3 ตัวไม่คุ้มกับ GraphQL overhead
  • Public API ที่ต้องการ HTTP cache — GraphQL ทำ caching ยากกว่า
  • ทีมยังไม่มี GraphQL expertise — learning curve สูง
  • File upload heavy — GraphQL ไม่ได้ออกแบบมาสำหรับ binary data
  • Real-time เท่านั้น — WebSocket โดยตรงอาจง่ายกว่า Subscription