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

API Reference (เอกสารอ้างอิง API)

คู่มือฉบับนี้รวบรวม API ทั้งหมดที่ผู้ใช้และนักพัฒนาสามารถใช้งานได้บนแพลตฟอร์ม ChanomHub เพื่อเชื่อมต่อ ค้นหา ดึงข้อมูลบทความ ม็อด (Mods) หรือผสานรวมบริการต่างๆ

ภาพรวมระบบ API (Overview)

heading.anchorLabel

ChanomHub ให้บริการ API ผ่านหลากหลายรูปแบบตามการใช้งาน:

  • Base URL (REST): https://api.chanomhub.com/api (หรือ http://localhost:3000/api สำหรับ Local)
  • GraphQL Endpoint: https://api.chanomhub.com/api/graphql
  • Swagger Documentation: https://api.chanomhub.com/api-docs

1. การยืนยันตัวตน (Authentication)

heading.anchorLabel

การใช้งาน API ส่วนใหญ่สำหรับดึงข้อมูลสาธารณะ (เช่น รายชื่อบทความ, ม็อด, ค้นหา) ไม่จำเป็นต้องใช้ Token แต่หากต้องการดำเนินการจัดการข้อมูลส่วนตัว หรือส่งบทความ จะต้องระบุ HTTP Header:

Authorization: Bearer <YOUR_ACCESS_TOKEN>

การเข้าสู่ระบบ / ลงทะเบียน (Auth Endpoints)

heading.anchorLabel
EndpointMethodคำอธิบาย
/api/auth/sign-in/emailPOSTเข้าสู่ระบบด้วย Email และ Password
/api/auth/sign-up/emailPOSTสมัครสมาชิกใหม่ด้วย Email
/api/auth/sign-outPOSTออกจากระบบ (Invalidate Session)
/api/auth/sign-in/socialGETเข้าสู่ระบบผ่าน Social Provider (google, discord, github)

2. API สำหรับบทความ (Articles API)

heading.anchorLabel

จัดการ ดึงข้อมูล และค้นหาบทความเกมหรือเนื้อหาในแพลตฟอร์ม

2.1 ดึงรายการบทความ (List Articles)

heading.anchorLabel

GET /api/articles

Query Parameters:

  • page (number): หน้าที่ต้องการ ( Default: 1 )
  • limit (number): จำนวนรายการต่อหน้า ( Default: 20 )
  • category (string): กรองตาม Category Slug
  • tag (string): กรองตาม Tag Slug
  • search (string): คำค้นหาในชื่อหรือเนื้อหา
  • sortBy (string): การเรียงลำดับ (latest, popular, trending)
หน้าต่าง Terminal
curl -X GET "https://api.chanomhub.com/api/articles?page=1&limit=10&sortBy=latest"

2.2 บทความมาใหม่ & ยอดนิยม

heading.anchorLabel
  • GET /api/articles/latest — ดึงบทความที่เพิ่งเผยแพร่ล่าสุด
  • GET /api/articles/popular — ดึงบทความยอดฮิตที่มียอดอ่านสูง

2.3 อ่านรายละเอียดบทความ (Get Article Detail)

heading.anchorLabel

GET /api/articles/:slug

Response Example:

{
"article": {
"id": 102,
"title": "ตัวอย่างบทความเกมม็อด",
"slug": "example-game-mod",
"description": "คำอธิบายย่อบทความ...",
"body": "เนื้อหาบทความแบบ Markdown หรือ Rich Text...",
"ver": "1.2.0",
"engine": "RENPY",
"views": 1540,
"ratings": 4.8,
"tags": ["Visual Novel", "Mod"],
"createdAt": "2026-08-19T10:00:00.000Z"
}
}

2.4 เพิ่มยอดเข้าชม (Increment View)

heading.anchorLabel

POST /api/articles/:slug/view

  • ใช้สำหรับบันทึกการอ่านบทความเมื่อผู้ใช้เปิดอ่านหน้าบทความ

2.5 จัดการบทความ (Authenticated)

heading.anchorLabel
  • POST /api/articles — สร้างบทความใหม่ (Draft/Submission)
  • PUT /api/articles/:slug — แก้ไขเนื้อหาบทความของผู้ใช้
  • POST /api/articles/:slug/transfer-request — ส่งคำขอโอนสิทธิ์ความเป็นเจ้าของบทความไปยังผู้ใช้อื่น
  • POST /api/articles/:slug/favorite — เพิ่มบทความเข้ารายการโปรด (Bookmark)
  • DELETE /api/articles/:slug/favorite — ยกเลิกบทความในรายการโปรด

3. API สำหรับความคิดเห็น (Comments API)

heading.anchorLabel
EndpointMethodAuthคำอธิบาย
/api/articles/:slug/commentsGETดึงรายการความคิดเห็นทั้งหมดของบทความ
/api/articles/:slug/commentsPOSTแสดงความคิดเห็น หรือตอบกลับ (Reply)
/api/articles/:slug/comments/:idDELETEลบความคิดเห็นของผู้ใช้เอง

4. API ม็อดและเอนจินเกม (Mods & Engines API)

heading.anchorLabel

สำหรับค้นหาม็อด ดึงหมวดหมู่ม็อด และข้อมูล Engine ของเกม

  • GET /api/mods — ค้นหาและกรองรายการม็อดทั้งหมด
  • GET /api/mods/:id — ดึงข้อมูลรายละเอียดม็อดเฉพาะ ID
  • GET /api/mod-categories — ดึงรายชื่อหมวดหมู่ม็อดทั้งหมด
  • GET /api/engines — ดึงรายชื่อ Game Engines ที่รองรับ (เช่น Ren’Py, Unity, RPG Maker)

5. API ดาวน์โหลดไฟล์ (Downloads API)

heading.anchorLabel
EndpointMethodคำอธิบาย
/api/downloads/:documentIdGETรับโทเค็นดาวน์โหลดและสร้างลิงก์ดาวน์โหลดอย่างปลอดภัย
/api/downloads/redirectGETลิงก์สำหรับเปลี่ยนทิศทางไปยังไฟล์ดาวน์โหลด (Ad-Redirect Flow)

6. หมวดหมู่ แฮชแท็ก และแพลตฟอร์ม (Taxonomy APIs)

heading.anchorLabel
  • GET /api/tags — รายชื่อ Tag ทั้งหมดพร้อมจำนวนการใช้งาน
  • GET /api/categories — รายชื่อ Category ทั้งหมด
  • GET /api/platforms — รายชื่อแพลตฟอร์มเกม (เช่น PC, Mobile, Android, Switch)

7. Developer Portal & API Verification

heading.anchorLabel

ระบบยืนยันตัวตนสำหรับผู้พัฒนา (Developer Status) และการจัดการโทเค็น:

  • GET /api/developer/list — ดูรายชื่อนักพัฒนาที่ผ่านการยืนยันแล้ว
  • GET /api/developer/profile (Auth) — ดูข้อมูลโปรไฟล์ Developer ของตนเอง
  • POST /api/developer/apply (Auth) — ส่งคำขอสมัครเป็น Developer
  • POST /api/developer/generate-token (Auth) — สร้าง One-Time Token สำหรับยืนยันตัวตน
  • POST /api/developer/verify/:token (Auth) — กดยืนยันด้วย One-Time Token
  • PATCH /api/developer/profile (Auth) — อัปเดตข้อมูลโปรไฟล์ผู้พัฒนา

8. ระบบช่วยเหลือด้วย AI (AI Utilities API)

heading.anchorLabel

สำหรับผู้เขียนบทความและนักพัฒนาในการแนะนำ แท็ก และตรวจสอบเนื้อหา:

  • POST /api/ai/suggest-tags — แนะนำ แท็ก ที่เหมาะสมจากเนื้อหาบทความโดยอัตโนมัติ
  • POST /api/ai/validate-tag — ตรวจสอบความถูกต้องและความเกี่ยวข้องของแท็ก

ChanomHub รองรับ RSS Feeds เพื่อใช้ติดตามข่าวสารและบทความตามหมวดหมู่หรือแพลตฟอร์ม:

  • Platform RSS Feed: /platforms/:slug/rss
    • ตัวอย่าง: https://chanomhub.com/th/platforms/pc/rss
  • Tag RSS Feed: /tag/:slug/rss
    • ตัวอย่าง: https://chanomhub.com/th/tag/visual-novel/rss

10. GraphQL API

heading.anchorLabel

ChanomHub มี GraphQL Endpoint สำหรับนักพัฒนาที่ต้องการ Query ข้อมูลที่ยืดหยุ่นและเฉพาะเจาะจง

  • Endpoint: /api/graphql
  • รองรับ HTTP Methods: POST, QUERY

คุณสามารถดู Schema และทดลอง Query ได้ผ่าน GraphQL Schema Browser ของเรา


สรุปสถานะรหัสตอบกลับ (HTTP Status Codes)

heading.anchorLabel
Status Codeความหมายคำอธิบาย
200 OKสำเร็จดึงข้อมูลหรือทำรายการสำเร็จ
201 Createdสร้างข้อมูลสำเร็จสร้างบทความ หรือส่งข้อมูลสำเร็จ
400 Bad Requestข้อมูลไม่ถูกต้องข้อมูลนำเข้าไม่ถูกต้องตามข้อกำหนด
401 Unauthorizedยังไม่ได้ยืนยันตัวตนต้องระบุ Bearer Token ใน HTTP Header
403 Forbiddenไม่มีสิทธิ์ใช้งานสิทธิ์ของผู้ใช้ไม่เพียงพอในการทำรายการนี้
404 Not Foundไม่พบข้อมูลไม่พบ Slug หรือ Resource ที่ร้องขอ
500 Internal Errorข้อผิดพลาดของเซิร์ฟเวอร์เกิดปัญหาภายในระบบเซิร์ฟเวอร์