เริ่มต้นใช้งาน ElysiaJS กับ OpenAPI และ Bun ในปี 2025

Ashley Goolam

Ashley Goolam

8 November 2025

เริ่มต้นใช้งาน ElysiaJS กับ OpenAPI และ Bun ในปี 2025

การเลือกเฟรมเวิร์กที่เหมาะสมสามารถสร้างความแตกต่างอย่างมากในการสร้าง API ที่มีประสิทธิภาพและปรับขนาดได้ ElysiaJS ซึ่งเป็นเฟรมเวิร์ก Node.js ที่มีน้ำหนักเบา ทำงานร่วมกับรันไทม์ประสิทธิภาพสูงของ Bun และมาตรฐาน OpenAPI สำหรับเอกสารและการสร้างไคลเอ็นต์ได้อย่างยอดเยี่ยม การผสมผสานนี้ช่วยให้นักพัฒนาสามารถสร้างบริการ RESTful ที่แข็งแกร่งได้อย่างราบรื่นโดยมีค่าใช้จ่ายน้อยที่สุด เนื่องจาก API กลายเป็นกระดูกสันหลังของแอปพลิเคชันสมัยใหม่ การเริ่มต้นใช้งาน ElysiaJS, OpenAPI และ Bun จะช่วยให้คุณสามารถส่งมอบปลายทางที่ปลอดภัยทางประเภทและมีเอกสารครบถ้วนได้อย่างรวดเร็ว ในคู่มือนี้ เราจะครอบคลุมทุกอย่างตั้งแต่พื้นฐานของ ElysiaJS ไปจนถึงการตั้งค่าจริง ขั้นตอนการติดตั้งในแพลตฟอร์มต่างๆ และตัวอย่างโค้ดที่ใช้งานได้จริง บทช่วยสอนนี้จะช่วยให้คุณรวม elysiajs เข้ากับ openapi ได้อย่างราบรื่น โดยใช้ประโยชน์จากความเร็วของ Bun เพื่อประสบการณ์การพัฒนาที่ดีที่สุด

💡
ต้องการเครื่องมือทดสอบ API ที่ยอดเยี่ยมที่สร้าง เอกสารประกอบ API ที่สวยงาม หรือไม่?

ต้องการแพลตฟอร์มแบบ All-in-One ที่รวมทุกอย่างเข้าด้วยกันสำหรับทีมพัฒนาของคุณเพื่อทำงานร่วมกันด้วย ประสิทธิภาพสูงสุด หรือไม่?

Apidog ตอบสนองทุกความต้องการของคุณ และ แทนที่ Postman ด้วยราคาที่เข้าถึงได้มากกว่ามาก!
button

ElysiaJS คืออะไร?

ElysiaJS เป็นเฟรมเวิร์กเว็บ Node.js ที่มีน้ำหนักเบาและรวดเร็ว ออกแบบมาให้เรียบง่ายแต่สามารถขยายได้สูงสำหรับการสร้าง RESTful API โดยเน้นที่พื้นที่ผิวที่เล็ก การรองรับ TypeScript ที่สะอาด และ API ที่ใช้งานง่ายสำหรับการกำหนดเส้นทาง มิดเดิลแวร์ และปลั๊กอิน ElysiaJS มุ่งมั่นที่จะมอบประสิทธิภาพพร้อมประสบการณ์ที่เป็นมิตรกับนักพัฒนาและการรวม OpenAPI ที่แข็งแกร่งตั้งแต่เริ่มต้น จุดแข็งหลักของมันคือการรองรับ OpenAPI ระดับเฟิร์สคลาส ระบบนิเวศของปลั๊กอิน และการออกแบบที่เน้นความเร็วและความเรียบง่ายโดยไม่ผูกมัดคุณกับการใช้ abstraction ที่หนักหน่วง สิ่งนี้ทำให้ ElysiaJS น่าสนใจเป็นพิเศษสำหรับนักพัฒนาที่ต้องการมุ่งเน้นไปที่ตรรกะมากกว่าโค้ดเริ่มต้น (boilerplate) ในขณะที่มั่นใจว่า API ของพวกเขาสามารถจัดทำเอกสารและใช้งานได้ง่ายผ่านข้อกำหนด OpenAPI

ทำไมต้องเลือก ElysiaJS ในปี 2025?

การเลือก ElysiaJS นำมาซึ่งประโยชน์ที่น่าสนใจหลายประการที่ช่วยปรับปรุงกระบวนการพัฒนา API ของคุณ

  1. ประสิทธิภาพโดดเด่นด้วยรันไทม์ที่บางเบาและการมุ่งเน้นไปที่การจัดการเส้นทางที่รวดเร็วและค่าใช้จ่ายที่ต่ำ ทำให้แอปพลิเคชันสามารถปรับขนาดได้อย่างมีประสิทธิภาพภายใต้ภาระงาน การเตรียมพร้อมสำหรับ OpenAPI ในตัวหมายความว่าคุณสามารถสร้างและให้บริการข้อกำหนด OpenAPI ได้อย่างง่ายดาย ซึ่งช่วยลดความซับซ้อนของเอกสาร API และการสร้างไคลเอ็นต์ ซึ่งเป็นสิ่งสำคัญสำหรับทีมที่ทำงานร่วมกันในไมโครเซอร์วิสหรือ API สาธารณะ
  2. ประสบการณ์ของนักพัฒนาเป็นอีกหนึ่งจุดเด่น: ElysiaJS เป็นมิตรกับ TypeScript ด้วยการกำหนดเส้นทางที่กระชับและสถาปัตยกรรมแบบโมดูลาร์ที่รองรับการเติบโตเมื่อโปรเจกต์ของคุณขยายใหญ่ขึ้น ระบบนิเวศของมันประกอบด้วยชุดปลั๊กอินที่เพิ่มขึ้นสำหรับการรองรับ OpenAPI, เอกสารประกอบ และยูทิลิตี้การทดสอบ ซึ่งรวมเข้ากับเครื่องมือที่มีอยู่ได้อย่างราบรื่น การออกแบบที่เน้น OpenAPI เป็นอันดับแรกช่วยให้มั่นใจได้ถึงความสอดคล้องกันระหว่างโค้ดและเอกสารของคุณ ลดความพยายามในการบำรุงรักษา
เว็บไซต์ทางการของ ElysiaJS

Bun คืออะไร?

Bun คือรันไทม์ JavaScript, ตัวจัดการแพ็คเกจ และตัวรวมโค้ดแบบ All-in-one ที่รวดเร็ว ได้รับการออกแบบมาเพื่อใช้แทน Node.js ได้ในหลายกรณี โดยนำเสนอเวลาเริ่มต้นที่เร็วขึ้นและเครื่องมือที่มีประสิทธิภาพ Bun สามารถเร่งเวิร์กโฟลว์การพัฒนา การติดตั้ง Dependencies และการรันสคริปต์ ทำให้เป็นคู่หูยอดนิยมกับเฟรมเวิร์กสมัยใหม่เช่น ElysiaJS ด้วยการจัดการหลายบทบาทในระบบนิเวศ JavaScript Bun ช่วยลดการสลับบริบท ทำให้นักพัฒนาสามารถมุ่งเน้นไปที่การสร้างมากกว่าการจัดการเครื่องมือ ความเข้ากันได้กับ Node API ช่วยให้การเปลี่ยนผ่านเป็นไปอย่างราบรื่น ในขณะที่การรองรับ TypeScript และ JSX ในตัวช่วยเพิ่มประสิทธิภาพในการทำงานในโปรเจกต์ ElysiaJS

รันไทม์ Bun JS

การติดตั้ง Bun (MacOS, Linux และ Windows)

การติดตั้ง Bun นั้นง่ายดายในทุกแพลตฟอร์ม ทำให้คุณสามารถจับคู่กับ ElysiaJS ได้อย่างรวดเร็ว

  1. สำหรับ MacOS ให้เปิด Terminal และรันสคริปต์การติดตั้ง: curl -fsSL https://bun.sh/install | bash ซึ่งจะดาวน์โหลดและตั้งค่า Bun โดยเพิ่มลงใน PATH ของคุณ ตรวจสอบด้วย bun --version
  2. บน Linux ให้ใช้คำสั่ง curl เดียวกันในเทอร์มินัลของคุณ: curl -fsSL https://bun.sh/install | bash รองรับการแจกจ่ายหลักๆ เช่น Ubuntu และ Fedora รีสตาร์ทเชลล์ของคุณหรือ source โปรไฟล์ของคุณ จากนั้นตรวจสอบ bun --version เพื่อยืนยัน
  3. ผู้ใช้ Windows สามารถติดตั้งผ่าน PowerShell ในฐานะผู้ดูแลระบบ: powershell -c "irm bun.sh/install.ps1 | iex" ซึ่งจะจัดการการตั้งค่า รวมถึงการรวม Chocolatey หากจำเป็น เปิด PowerShell อีกครั้งและรัน bun --version เพื่อตรวจสอบ
ติดตั้ง bun บน Windows

ในทุกกรณี Bun จะติดตั้งเสร็จในไม่กี่วินาทีและพร้อมสำหรับโปรเจกต์ ElysiaJS โดยไม่จำเป็นต้องมีการกำหนดค่าเพิ่มเติมสำหรับการใช้งานพื้นฐาน

เริ่มต้นใช้งาน ElysiaJS

การเริ่มต้นโปรเจกต์ ElysiaJS เริ่มต้นด้วยข้อกำหนดเบื้องต้นบางประการ:

ในการเริ่มต้น ให้ใช้ Bun เพื่อความรวดเร็ว: bun create elysia my-api ซึ่งจะสร้างโครงสร้างพื้นฐานพร้อม package.json และการรองรับ TypeScript

ใช้ bun เพื่อสร้างโปรเจกต์ elysia

หากไม่มี Bun ให้รัน npm create elysia my-api ผ่าน npm เข้าไปในโฟลเดอร์ด้วย cd my-api และคุณก็พร้อมที่จะกำหนดเส้นทาง

การตั้งค่าที่เรียบง่ายของ ElysiaJS ส่งเสริมการสร้างต้นแบบอย่างรวดเร็ว—นำเข้าโมดูลหลัก กำหนดตัวจัดการ และฟังบนพอร์ต พื้นฐานนี้ปรับขนาดได้ง่าย โดยรวม OpenAPI สำหรับเอกสารตั้งแต่เริ่มต้น

การติดตั้งและตั้งค่า ElysiaJS

การติดตั้งเป็นแบบ One-liner เมื่อรันไทม์ของคุณพร้อม ด้วย Bun: bun install elysia

ใช้ bun เพื่อติดตั้ง elysia

สำหรับ npm: npm install elysia หากใช้ TypeScript ให้เพิ่ม @types/node เพื่อความสมบูรณ์

การตั้งค่าเกี่ยวข้องกับการสร้างไฟล์เริ่มต้น index.ts:

import { Elysia } from "elysia";

const app = new Elysia().get("/", () => "Hello Elysia").listen(3000);

console.log(
  `🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`
);

รันด้วย Bun: bun run index.ts หรือ Node: npx ts-node index.ts เยี่ยมชม "http://localhost:3000" เพื่อดูการตอบกลับ แอปพื้นฐานนี้ยืนยันความเรียบง่ายของ ElysiaJS—ขยายด้วยมิดเดิลแวร์หรือปลั๊กอินตามต้องการ

ใช้ bun เพื่อรันโปรเจกต์ elysia

การรวม ElysiaJS เข้ากับ OpenAPI

การรองรับ OpenAPI ของ ElysiaJS โดดเด่นผ่านปลั๊กอิน ทำให้สามารถสร้างข้อกำหนดที่สร้างขึ้นโดยอัตโนมัติจากเส้นทางของคุณ ติดตั้งปลั๊กอิน: bun add @elysiajs/openapi (หรือเทียบเท่ากับ npm)

ติดตั้ง openapi ใน elysia ด้วย bun

กำหนดค่าในแอปของคุณ:

import { Elysia } from 'elysia'
import { openapi, fromTypes } from '@elysiajs/openapi'

export const app = new Elysia()
    .use(
        openapi({
            references: fromTypes() 
        })
    )
    .get(
        '/pets',
        () => [
            { id: 1, name: 'Fluffy' },
            { id: 2, name: 'Spot' }
        ],
        ({
            summary: 'Get all pets',
            responses: { 200: { description: 'Success' } }
        } as any)
    )
    .listen(3000)

เข้าถึงเอกสารได้ที่ "/openapi" หรือ "/docs" (เช่น "http://localhost:3000/openapi") ซึ่ง Swagger UI จะแสดงผลสคีมาแบบโต้ตอบ ElysiaJS อนุมานประเภทจากตัวจัดการ ทำให้การจัดเรียงโค้ด-สเปคแน่นขึ้น สำหรับการตั้งค่าขั้นสูง ให้สร้างจาก TypeScript โดยใช้เครื่องมือระบบนิเวศ เพื่อให้มั่นใจว่า elysiajs กับ openapi พัฒนาไปพร้อมกับ codebase ของคุณ

ใช้เอกสาร openapi กับ elysiajs

คลิก "Test Request" เพื่อทดสอบปลายทาง API ตัวอย่าง "Pets" ที่เราเพิ่งสร้างขึ้น

ทดสอบปลายทาง API ของสัตว์เลี้ยงด้วย openapi

ตัวอย่างโค้ด: การสร้างและทดสอบแอป ElysiaJS พื้นฐาน

การทดสอบ ElysiaJS เริ่มต้นด้วยแอปง่ายๆ ขยาย Hello World:

import { Elysia } from 'elysia'

const app = new Elysia()
  .get('/', () => 'Hello from ElysiaJS!')
  .post('/echo', ({ body }) => body, {
    body: t.Object({ message: t.String() })
  })
  .listen(3000, () => console.log('Server listening on http://localhost:3000'))

รันและทดสอบด้วย curl: curl -X POST http://localhost:3000/echo -H "Content-Type: application/json" -d "{\"message\": \"Test\"}" คาดว่าจะได้รับการตอบกลับที่สะท้อนกลับมา

ทดสอบ elysia ด้วย curl

สำหรับการทดสอบหน่วย ให้ใช้ bun:test สร้างโฟลเดอร์ "test" ในไดเรกทอรีรูทของโปรเจกต์ของคุณและเพิ่มไฟล์ index.test.ts ด้วยโค้ดต่อไปนี้:

import { describe, expect, it } from 'bun:test'
import { Elysia } from 'elysia'

describe('Elysia', () => {
    it('returns a response', async () => {
        const app = new Elysia().get('/', () => 'hi')

        const response = await app
            .handle(new Request('http://localhost/'))
            .then((res) => res.text())

        expect(response).toBe('hi')
    })
})

ในการรันการทดสอบ เพียงใช้คำสั่ง: bun test

รันการทดสอบใน elysiajs ด้วย bun test

สิ่งนี้ตรวจสอบฟังก์ชันการทำงานหลัก ยืนยันความน่าเชื่อถือของ ElysiaJS

ตัวอย่างโค้ด: ElysiaJS กับ OpenAPI ในการทำงาน

สำหรับ elysiajs กับ openapi ให้สร้าง Pet API:

import { Elysia, t } from 'elysia'
import { openapi, fromTypes } from '@elysiajs/openapi'

const app = new Elysia()
  .use(
    openapi({
      references: fromTypes() 
    })
  )
  .get('/pets', () => [
    { id: 1, name: 'Fluffy', type: 'Cat' },
    { id: 2, name: 'Spot' }
  ], ({
    summary: 'List pets',
    responses: {
      200: {
        description: 'Success',
        content: {
          'application/json': {
            schema: {
              type: 'array',
              items: { type: 'object', properties: { id: { type: 'integer' }, name: { type: 'string' }, type: { type: 'string' } } }
            }
          }
        }
      }
    }
  } as any))
  .post('/pets', ({ body }) => ({ id: Date.now(), ...body }), {
    body: t.Object({ name: t.String(), type: t.String() }),
    summary: 'Create pet',
    responses: { 200: { description: 'Created' } }
  })
  .listen(3000, () => console.log('Server listening on http://localhost:3000'))
import { Elysia, t } from 'elysia'
import { openapi, fromTypes } from '@elysiajs/openapi'

const app = new Elysia()
  .use(
    openapi({
      references: fromTypes() 
    })
  )
  .get('/pets', () => [
    { id: 1, name: 'Fluffy', type: 'Cat' },
    { id: 2, name: 'Spot' }
  ], ({
    summary: 'List pets',
    responses: {
      200: {
        description: 'Success',
        content: {
          'application/json': {
            schema: {
              type: 'array',
              items: { type: 'object', properties: { id: { type: 'integer' }, name: { type: 'string' }, type: { type: 'string' } } }
            }
          }
        }
      }
    }
  } as any))
  .post('/pets', ({ body }) => ({ id: Date.now(), ...body }), {
    body: t.Object({ name: t.String(), type: t.String() }),
    summary: 'Create pet',
    responses: { 200: { description: 'Created' } }
  })
  .listen(3000, () => console.log('Server listening on http://localhost:3000'))

ทดสอบ POST: curl -X POST http://localhost:3000/pets -H "Content-Type: application/json" -d '{"name": "Scooby Doo", "type": "Dog"}' เยี่ยมชม /openapi สำหรับเอกสาร Swagger ตรวจสอบสคีมาและเส้นทาง

ทดสอบการร้องขอ POST ใน elysia ด้วย bun

เคล็ดลับที่เป็นประโยชน์สำหรับการเตรียมพร้อมสำหรับการใช้งานจริง

ความปลอดภัยของประเภท (Type safety) เป็นสิ่งสำคัญ: ใช้ประโยชน์จากประเภท TypeScript สำหรับเนื้อหาคำขอ การตอบกลับ และพารามิเตอร์เส้นทาง เพื่อปรับปรุงความน่าเชื่อถือและความถูกต้องของการสร้าง OpenAPI การสังเกตการณ์ (Observability) ต้องการการเพิ่มการบันทึก (logging) เมตริก (metrics) และมิดเดิลแวร์การจัดการข้อผิดพลาด (error handling middleware) เพื่อตรวจสอบพฤติกรรมของ API มาตรการรักษาความปลอดภัยรวมถึงการใช้การควบคุม CORS การตรวจสอบความถูกต้องของอินพุต การจำกัดอัตรา (rate limiting) และการรับรองความถูกต้อง (authentication) ตามความจำเป็น การบรรจุ (Packaging) เกี่ยวข้องกับการใช้ขั้นตอนการสร้างเวอร์ชันสำหรับใช้งานจริงของ Bun หรือตัวรวมโค้ดของคุณเพื่อสร้างแพ็คเกจการปรับใช้ที่เบาบาง เอกสารประกอบ (Documentation) กำหนดให้ต้องรักษาข้อกำหนด OpenAPI ให้สอดคล้องกับโค้ด เพื่อให้มั่นใจว่า SDK ของไคลเอ็นต์และเอกสารประกอบเป็นปัจจุบันอยู่เสมอ

คำถามที่พบบ่อย

Q1: ElysiaJS เหมาะสำหรับแอปพลิเคชันขนาดใหญ่หรือไม่?
Ans: ใช่ การออกแบบแบบโมดูลาร์และการมุ่งเน้นประสิทธิภาพทำให้สามารถปรับขนาดสำหรับ API ระดับองค์กรได้

Q2: ElysiaJS ต้องใช้ TypeScript หรือไม่?
Ans: ไม่ แต่แนะนำเป็นอย่างยิ่งสำหรับการสร้าง OpenAPI ที่ปลอดภัยทางประเภท

Q3: Bun เปรียบเทียบกับ Node.js อย่างไรเมื่อใช้กับ ElysiaJS?
Ans: Bun มีการติดตั้งและการรันที่เร็วกว่า แต่ Node.js ก็ใช้งานได้หากคุณคุ้นเคยมากกว่า

Q4: ฉันสามารถสร้างข้อกำหนด OpenAPI จากโค้ดที่มีอยู่ได้หรือไม่?
Ans: ได้อย่างแน่นอน โดยใช้ปลั๊กอิน ElysiaJS ที่อนุมานจากคำจำกัดความของเส้นทาง

Q5: เฟรมเวิร์กการทดสอบใดที่เข้ากันได้ดีที่สุดกับ ElysiaJS?
Ans: Apidog, Vitest หรือ Jest สำหรับการทดสอบหน่วย และ Supertest สำหรับการจำลอง API

ทดสอบการร้องขอ Get ของ ElysiaJS ใน Apidog
ทดสอบการร้องขอ Get ของ ElysiaJS ใน Apidog
ทดสอบการร้องขอ Post ของ ElysiaJS ใน Apidog
ทดสอบการร้องขอ Post ของ ElysiaJS ใน Apidog

สรุป: สร้าง API ที่ชาญฉลาดขึ้นด้วย ElysiaJS, OpenAPI และ Bun

ElysiaJS ด้วยการผสมผสานความเร็วและความเรียบง่าย จับคู่กับประสิทธิภาพรันไทม์ของ Bun และพลังการจัดทำเอกสารของ OpenAPI ทำให้เกิดสแต็กที่น่าสนใจสำหรับการพัฒนา API ตั้งแต่การติดตั้งไปจนถึงการทดสอบ คู่มือนี้ได้เตรียมคุณให้พร้อมสำหรับการเริ่มต้นสร้าง ลองใช้ตัวอย่าง ปรับแต่งเส้นทางของคุณ และเฝ้าดูโปรเจกต์ของคุณเติบโต—ElysiaJS พร้อมที่จะขับเคลื่อนการสร้างสรรค์ครั้งต่อไปของคุณ

button
ส่วนต่อประสานผู้ใช้ Apidog

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API