สร้าง API ปรับขนาดได้ด้วย Deno GraphQL

สร้าง API GraphQL ด้วย Deno: คู่มือฉบับภาษาไทย

สร้าง API GraphQL ด้วย Deno: คู่มือฉบับภาษาไทย

บทนำ

GraphQL ได้กลายเป็นตัวเลือกยอดนิยมสำหรับการสร้าง APIs เนื่องจากมีความยืดหยุ่นและประสิทธิภาพที่เหนือกว่า REST APIs แบบเดิม Deno ซึ่งเป็น runtime ที่ปลอดภัยและทันสมัยสำหรับ JavaScript และ TypeScript มอบสภาพแวดล้อมที่ยอดเยี่ยมสำหรับการสร้าง GraphQL APIs ในบทความนี้ เราจะแนะนำคุณตลอดกระบวนการสร้าง GraphQL API อย่างง่ายด้วย Deno, TypeScript และ GraphQL Yoga

สิ่งที่ต้องมี

  • Deno ติดตั้งบนเครื่องของคุณ (วิธีการติดตั้ง Deno)
  • ความเข้าใจพื้นฐานเกี่ยวกับ TypeScript
  • ความรู้เกี่ยวกับ GraphQL (Schema, Query, Mutation)

การตั้งค่าโปรเจ็กต์

เริ่มต้นด้วยการสร้าง directory สำหรับโปรเจ็กต์ของคุณ:

mkdir deno-graphql-apicd deno-graphql-api

จากนั้น สร้างไฟล์ deps.ts เพื่อจัดการ dependencies ของเรา:

// deps.tsexport { GraphQLModule } from 'https://esm.sh/@graphql-yoga/[email protected]';export { createYoga } from 'https://esm.sh/[email protected]';export { serve } from 'https://deno.land/[email protected]/http/server.ts';

ไฟล์นี้จะ import modules ที่จำเป็นจาก esm.sh ซึ่งเป็น CDN สำหรับ JavaScript modules และ standard library ของ Deno

การกำหนด Schema

Schema GraphQL ของเราจะกำหนดโครงสร้างของข้อมูลที่เราสามารถ query ได้ สร้างไฟล์ schema.ts:

// schema.tsexport const typeDefs = `  type Query {    hello: String    greeting(name: String): String  }`;

Schema นี้กำหนด Query สองแบบ: hello ซึ่งคืนค่า string คงที่ และ greeting ซึ่งรับ argument name และคืนค่าคำทักทาย

การสร้าง Resolvers

Resolvers คือ functions ที่คืนค่าข้อมูลสำหรับแต่ละ field ใน schema ของเรา สร้างไฟล์ resolvers.ts:

// resolvers.tsexport const resolvers = {  Query: {    hello: () => 'Hello world!',    greeting: (_: any, { name }: { name: string }) => `Hello, ${name}!`,  },};

Resolver function สำหรับ hello คืนค่า string 'Hello world!' และ resolver สำหรับ greeting คืนค่าคำทักทายที่กำหนดเองโดยใช้ argument name

การตั้งค่า GraphQL Yoga Server

GraphQL Yoga เป็น server ที่รวดเร็วและง่ายต่อการใช้งานสำหรับ GraphQL สร้างไฟล์ server.ts:

// server.tsimport { createYoga, GraphQLModule, serve } from './deps.ts';import { typeDefs } from './schema.ts';import { resolvers } from './resolvers.ts';const yoga = createYoga({  schema: {    typeDefs,    resolvers,  },});const handler = yoga.handleRequest;serve(handler, { port: 3000 });console.log('Server is running on http://localhost:3000');

โค้ดนี้จะ import modules ที่จำเป็น สร้าง instance ของ GraphQL Yoga server โดยใช้ schema และ resolvers ของเรา จากนั้น server จะเริ่มทำงานบน port 3000

การรัน Server

รัน server โดยใช้คำสั่ง:

deno run --allow-net --allow-read server.ts

Flag --allow-net อนุญาตให้ Deno เข้าถึงเครือข่าย และ --allow-read อนุญาตให้อ่านไฟล์

การทดสอบ API

เปิด browser ของคุณและไปที่ http://localhost:3000 คุณจะเห็น GraphQL Playground ซึ่งคุณสามารถ query API ของคุณได้

ลอง query นี้:

query {  hello}

คุณควรเห็นผลลัพธ์:

{  "data": {    "hello": "Hello world!"  }}

ลอง query นี้ด้วย:

query {  greeting(name: "World")}

คุณควรเห็นผลลัพธ์:

{  "data": {    "greeting": "Hello, World!"  }}

สรุป

ในบทความนี้ เราได้แสดงวิธีสร้าง GraphQL API อย่างง่ายด้วย Deno, TypeScript และ GraphQL Yoga คุณสามารถใช้ความรู้นี้เพื่อสร้าง APIs ที่ซับซ้อนมากขึ้นสำหรับแอปพลิเคชันของคุณ

หากคุณกำลังมองหาผู้เชี่ยวชาญด้านการพัฒนาซอฟต์แวร์และ IT Consulting ในประเทศไทย ติดต่อ มีศิริ ดิจิทัล วันนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับบริการของเรา

มีศิริ ดิจิทัล ให้บริการด้าน IT Consulting, Software Development, Digital Transformation และ Business Solutions ครอบคลุมทุกความต้องการด้านเทคโนโลยีของคุณ

© 2023 มีศิริ ดิจิทัล

Go Concurrency Guide for Thai Developers