The site is being translated. Its menus are in English; most of what they lead to is still in Thai.

Dhamma API

เชื่อมต่อคลังธรรมะด้วย API ที่เรียบง่าย

เข้าถึงบทสวดมนต์ พระไตรปิฎก หนังสือธรรมะ ชาดก และหมวดธรรม ผ่าน REST API ที่อ่านได้ทันทีโดยไม่ต้องมีคีย์ — ทุกอย่างที่อ่านได้บนเว็บนี้ อ่านผ่าน HTTP ได้ด้วย

เส้นทาง
๕๕
คำสั่ง
๙๐
รุ่นปัจจุบัน
v1

เริ่มต้นใช้งานอย่างรวดเร็ว

>_ curlตัวอย่างการเรียกดูรายการหนังสือธรรมะ

curl "https://dhammapanya.org/api/v1/books?lang=th&limit=10"
ข้อตกลงของ API — คีย์ รูปของความผิดพลาด การแบ่งหน้า และ ETag
  • อ่านเปิดสาธารณะ เขียนต้องมีคีย์. ทุก GET เรียกได้เลยโดยไม่ต้องมีคีย์ เพราะสิ่งที่อยู่ในนี้คือพระธรรมและสารบัญห้องสมุด ไม่ใช่ข้อมูลส่วนตัวของใคร · ทุก POST PUT PATCH DELETE ต้องส่ง Authorization: Bearer <DHAMMA_API_KEY>
  • หน้าเว็บกับ API กินสัญญาเดียวกัน. หน้าเพจเรียกฟังก์ชันชุดเดียวกับที่เส้นเหล่านี้เรียก (src/lib/api/*) โดยไม่ผ่าน HTTP — รูปของข้อมูลจึงเป็นชนิดเดียวกันในภาษาเดียวกัน ไม่ใช่สองอย่างที่บังเอิญตรงกันวันนี้
  • ที่มาของตัวบท. ตัวบทของพระไตรปิฎกบนเซิร์ฟเวอร์นี้เป็นงานของคนอื่น — 84000.org และ E-Tipitaka — และแต่ละฉบับมาจากคนละที่กันเป็นสัดส่วน GET /api/v1/sources นับให้จากตัวบทที่เก็บไว้จริง ไคลเอนต์ที่แสดงตัวบทควรแสดงข้อมูลนั้นด้วย
  • ความผิดพลาดมีรูปเดียว: { "error": { "code", "message", "issues"? } } — message เป็นภาษาไทยและพิมพ์ให้ผู้ใช้อ่านได้เลย ส่วน issues แยกตามชื่อฟิลด์ เป็นประโยคชุดเดียวกับที่ฟอร์มในหน้าแอดมินพิมพ์ใต้ช่องกรอก
  • รายการทุกเส้นมีรูปเดียวกัน: { items, total, limit, offset } — ยกเว้น /api/v1/search ซึ่งคงรูปของผลค้นไว้
  • ทุก GET ส่ง ETag มาด้วย ส่ง If-None-Match กลับมาแล้วได้ 304 ถ้าคำตอบยังเป็นอันเดิม · คุ้มที่สุดกับก้อนใหญ่อย่าง layout ของเล่ม (๒๙๘ บท) ที่แอปเปิดซ้ำทุกเช้าแต่แทบไม่เคยเปลี่ยน
  • PATCH แก้เฉพาะสิ่งที่ส่งมา ระเบียนเดิมถูกอ่านก่อน แล้ว body ทับลงเฉพาะคีย์ที่เอ่ยถึง · null หรือสตริงว่างคือการลบค่านั้นทิ้ง คีย์ที่ไม่ได้เอ่ยถึงคงเดิม และรายการถูกแทนทั้งก้อนไม่ใช่ต่อท้าย
  • แก้แล้วไม่ทับกัน. ระเบียนแต่ละอันส่ง version มากับ GET ของตัวเอง · ส่งกลับมาใน If-Match แล้วถ้าระเบียนขยับไปตั้งแต่ที่อ่านมา จะได้ 412 แทนที่จะเขียนทับงานที่ไม่เคยเห็น · เป็นทางเลือก ไม่บังคับ แต่ PATCH ต้องการมันมากกว่า PUT เพราะมัน merge เข้ากับสิ่งที่อ่านมาเมื่อครู่ — สองคนที่แก้คนละฟิลด์จากสำเนาเดียวกันจึงไม่ชนกันดัง ๆ คนหลังแค่เขียนฟิลด์ของคนแรกกลับไปเป็นค่าเดิม
  • หมายเหตุ: version ไม่ใช่ ETag ของคำตอบใดคำตอบหนึ่ง — คำตอบของหนังสือเล่มหนึ่งมีเล่มข้างเคียงอยู่ด้วย แฮชของไบต์จึงจะขยับตอนที่หนังสือ *เล่มอื่น* ถูกเพิ่ม และปฏิเสธในสิ่งที่ไม่ใช่การชนกันจริง · version แฮชเฉพาะฟิลด์ที่การเขียนขยับได้ และไม่เปลี่ยนตาม ?lang=
  • เรียกถี่เกินไปได้ 429 พร้อม Retry-After เป็นวินาที · นับต่อผู้เรียก และคำขอที่แพงมีราคาแพงกว่า — ค้นในเล่มเท่ากับยี่สิบคำขอธรรมดา ค้นทั้งคลังเท่ากับห้า · ตั้งด้วย API_RATE_LIMIT (0 คือปิด)

คลังหนังสือธรรมะ

books · ๑๔ คำสั่ง

ดูเอกสารทั้งหมด
get/api/v1/booksรายการหนังสือทั้งหมด

รายการหนังสือทั้งหมด

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages
shelfstring
ชั้นที่จะหยิบมา: all · featured · popular · recent · continue
categorystring
สลักหมวดหนังสือ
authorstring
ชื่อผู้เขียนแบบตรงตัว
writtenInstring
ภาษาที่หนังสือเขียน — ไทย · English · บาลี (คนละเรื่องกับ ?lang=)
limitinteger
จำนวนรายการต่อครั้ง (ค่าเริ่มต้น 50 สูงสุด 200)
offsetinteger
ข้ามกี่รายการก่อนเริ่มนับ

การตอบกลับ

  • 200{ items, total, limit, offset }
post/api/v1/booksเพิ่มหนังสือต้องมีคีย์

ตรวจด้วยตัวตรวจชุดเดียวกับฟอร์มในหน้าแอดมิน ข้อความที่ปฏิเสธจึงเป็นประโยคภาษาไทยประโยคเดียวกัน และทุกครั้งที่เขียนสำเร็จจะมีบรรทัดใน content_edit

เนื้อคำขอ (Request Body)

ฟิลด์ของหนังสือ ตามที่ฟอร์มในหน้าแอดมินรับ

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
get/api/v1/books/{slug}หนังสือรายการเดียว

หนังสือรายการเดียว

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200ระเบียน
  • 404ไม่พบสิ่งที่ขอ
patch/api/v1/books/{slug}แก้ไขหนังสือต้องมีคีย์

แก้เฉพาะสิ่งที่ส่งมา — ระเบียนปัจจุบันถูกอ่านก่อน แล้ว body ทับลงไปเฉพาะคีย์ที่เอ่ยถึง ส่งฟิลด์เดียวก็เปลี่ยนฟิลด์เดียว · คีย์ที่ body เอ่ยถึงถูกแทนทั้งก้อน null และสตริงว่างต่างก็เป็นการลบค่านั้น และรายการถูกแทนไม่ใช่ต่อท้าย · สลักใน path คือระเบียนที่แก้ ส่ง slug ใน body เพื่อเปลี่ยนสลัก

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

ฟิลด์ของหนังสือ

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
delete/api/v1/books/{slug}ลบหนังสือต้องมีคีย์

ลบหนังสือ

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
get/api/v1/books/{slug}/contentsสารบัญของหนังสือ

บทและจำนวนหน้า ไม่มีตัวอักษรของเนื้อหาเลย · sample: true แปลว่ายังเป็นข้อความตัวอย่าง ไม่ใช่หนังสือจริง

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200{ book, chapters, totalPages, sample }
  • 404ไม่พบสิ่งที่ขอ
put/api/v1/books/{slug}/contentsเขียนทับเนื้อหาทั้งเล่มต้องมีคีย์

chapterTitle กับ chapterBody เป็นสองรายการที่เรียงคู่กัน บทละหนึ่งช่อง · ส่งมาเป็นรายการว่างคือล้างเนื้อหา แล้วหนังสือกลับไปใช้ฉบับตัวอย่าง

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

{ "chapterTitle": ["บทที่หนึ่ง"], "chapterBody": ["ย่อหน้า\n\nย่อหน้า"] }

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
get/api/v1/books/{slug}/pages/{number}หนึ่งหน้าของหนังสือ

หนึ่งหน้าของหนังสือ

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน
numberintegerจำเป็น
เลขหน้า เริ่มที่ ๑

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200{ number, chapterIndex, heading?, paragraphs, totalPages, sample }
  • 404ไม่พบสิ่งที่ขอ
get/api/v1/book-categoriesรายการหมวดหนังสือทั้งหมด

รายการหมวดหนังสือทั้งหมด

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages
limitinteger
จำนวนรายการต่อครั้ง (ค่าเริ่มต้น 50 สูงสุด 200)
offsetinteger
ข้ามกี่รายการก่อนเริ่มนับ

การตอบกลับ

  • 200{ items, total, limit, offset }
post/api/v1/book-categoriesเพิ่มหมวดหนังสือต้องมีคีย์

ตรวจด้วยตัวตรวจชุดเดียวกับฟอร์มในหน้าแอดมิน ข้อความที่ปฏิเสธจึงเป็นประโยคภาษาไทยประโยคเดียวกัน และทุกครั้งที่เขียนสำเร็จจะมีบรรทัดใน content_edit

เนื้อคำขอ (Request Body)

ฟิลด์ของหมวดหนังสือ ตามที่ฟอร์มในหน้าแอดมินรับ

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
get/api/v1/book-categories/{slug}หมวดหนังสือรายการเดียว

หมวดหนังสือรายการเดียว

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200ระเบียน
  • 404ไม่พบสิ่งที่ขอ
patch/api/v1/book-categories/{slug}แก้ไขหมวดหนังสือต้องมีคีย์

แก้เฉพาะสิ่งที่ส่งมา — ระเบียนปัจจุบันถูกอ่านก่อน แล้ว body ทับลงไปเฉพาะคีย์ที่เอ่ยถึง ส่งฟิลด์เดียวก็เปลี่ยนฟิลด์เดียว · คีย์ที่ body เอ่ยถึงถูกแทนทั้งก้อน null และสตริงว่างต่างก็เป็นการลบค่านั้น และรายการถูกแทนไม่ใช่ต่อท้าย · สลักใน path คือระเบียนที่แก้ ส่ง slug ใน body เพื่อเปลี่ยนสลัก

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

ฟิลด์ของหมวดหนังสือ

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
delete/api/v1/book-categories/{slug}ลบหมวดหนังสือต้องมีคีย์

ลบหมวดหนังสือ

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
post/api/v1/book-categories/{slug}/moveย้ายลำดับหมวดหนังสือต้องมีคีย์

delta เป็น −1 หรือ 1 — ลำดับถูกเขียนใหม่เป็น ๑…n ทุกครั้ง

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

{ "delta": -1 }

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง

บทสวดมนต์และตัวบท

chants · ๑๓ คำสั่ง

ดูเอกสารทั้งหมด
get/api/v1/chantsรายการบทสวดทั้งหมด

รายการบทสวดทั้งหมด

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages
sectionstring
สลักหมวด
occasionstring
โอกาสที่สวด
prayerTypestring
ประเภทบทสวด
audiostring
true เพื่อเอาเฉพาะบทที่มีเสียง
transcribedstring
true เพื่อเอาเฉพาะบทที่ถอดความแล้ว
limitinteger
จำนวนรายการต่อครั้ง (ค่าเริ่มต้น 50 สูงสุด 200)
offsetinteger
ข้ามกี่รายการก่อนเริ่มนับ

การตอบกลับ

  • 200{ items, total, limit, offset }
post/api/v1/chantsเพิ่มบทสวดต้องมีคีย์

ตรวจด้วยตัวตรวจชุดเดียวกับฟอร์มในหน้าแอดมิน ข้อความที่ปฏิเสธจึงเป็นประโยคภาษาไทยประโยคเดียวกัน และทุกครั้งที่เขียนสำเร็จจะมีบรรทัดใน content_edit

เนื้อคำขอ (Request Body)

ฟิลด์ของบทสวด ตามที่ฟอร์มในหน้าแอดมินรับ

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
get/api/v1/chants/{slug}บทสวดรายการเดียว

บทสวดรายการเดียว

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200ระเบียน
  • 404ไม่พบสิ่งที่ขอ
patch/api/v1/chants/{slug}แก้ไขบทสวดต้องมีคีย์

แก้เฉพาะสิ่งที่ส่งมา — ระเบียนปัจจุบันถูกอ่านก่อน แล้ว body ทับลงไปเฉพาะคีย์ที่เอ่ยถึง ส่งฟิลด์เดียวก็เปลี่ยนฟิลด์เดียว · คีย์ที่ body เอ่ยถึงถูกแทนทั้งก้อน null และสตริงว่างต่างก็เป็นการลบค่านั้น และรายการถูกแทนไม่ใช่ต่อท้าย · สลักใน path คือระเบียนที่แก้ ส่ง slug ใน body เพื่อเปลี่ยนสลัก

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

ฟิลด์ของบทสวด

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
delete/api/v1/chants/{slug}ลบบทสวดต้องมีคีย์

ลบบทสวด

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
post/api/v1/chants/{slug}/moveย้ายลำดับบทสวดต้องมีคีย์

delta เป็น −1 หรือ 1 — ลำดับถูกเขียนใหม่เป็น ๑…n ทุกครั้ง

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

{ "delta": -1 }

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
get/api/v1/chants/{slug}/textตัวบทสวด

บทที่ยังไม่ได้ถอดความตอบ 200 พร้อม transcribed: false ไม่ใช่ 404 — ระเบียนมีจริง เพียงแต่ยังไม่มีใครพิมพ์ตัวบทลงไป

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200{ slug, transcribed, lines }
  • 404ไม่พบสิ่งที่ขอ
get/api/v1/chant-sectionsรายการหมวดบทสวดทั้งหมด

รายการหมวดบทสวดทั้งหมด

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages
limitinteger
จำนวนรายการต่อครั้ง (ค่าเริ่มต้น 50 สูงสุด 200)
offsetinteger
ข้ามกี่รายการก่อนเริ่มนับ

การตอบกลับ

  • 200{ items, total, limit, offset }
post/api/v1/chant-sectionsเพิ่มหมวดบทสวดต้องมีคีย์

ตรวจด้วยตัวตรวจชุดเดียวกับฟอร์มในหน้าแอดมิน ข้อความที่ปฏิเสธจึงเป็นประโยคภาษาไทยประโยคเดียวกัน และทุกครั้งที่เขียนสำเร็จจะมีบรรทัดใน content_edit

เนื้อคำขอ (Request Body)

ฟิลด์ของหมวดบทสวด ตามที่ฟอร์มในหน้าแอดมินรับ

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
get/api/v1/chant-sections/{slug}หมวดบทสวดรายการเดียว

หมวดบทสวดรายการเดียว

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200ระเบียน
  • 404ไม่พบสิ่งที่ขอ
patch/api/v1/chant-sections/{slug}แก้ไขหมวดบทสวดต้องมีคีย์

แก้เฉพาะสิ่งที่ส่งมา — ระเบียนปัจจุบันถูกอ่านก่อน แล้ว body ทับลงไปเฉพาะคีย์ที่เอ่ยถึง ส่งฟิลด์เดียวก็เปลี่ยนฟิลด์เดียว · คีย์ที่ body เอ่ยถึงถูกแทนทั้งก้อน null และสตริงว่างต่างก็เป็นการลบค่านั้น และรายการถูกแทนไม่ใช่ต่อท้าย · สลักใน path คือระเบียนที่แก้ ส่ง slug ใน body เพื่อเปลี่ยนสลัก

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

ฟิลด์ของหมวดบทสวด

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
delete/api/v1/chant-sections/{slug}ลบหมวดบทสวดต้องมีคีย์

ลบหมวดบทสวด

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
post/api/v1/chant-sections/{slug}/moveย้ายลำดับหมวดบทสวดต้องมีคีย์

delta เป็น −1 หรือ 1 — ลำดับถูกเขียนใหม่เป็น ๑…n ทุกครั้ง

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

{ "delta": -1 }

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง

พระไตรปิฎก

ชั้น สารบัญ ตัวบท และการอ่านทีละหน้า · canon · ๒๗ คำสั่ง

ดูเอกสารทั้งหมด
get/api/v1/canonชั้นหนังสือทั้งชุด

สามปิฎก หมวดของแต่ละปิฎก และจำนวนเล่มทั้งหมด

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200{ pitakas, volumes }
get/api/v1/canon/pitakasรายการปิฎกทั้งหมด

รายการปิฎกทั้งหมด

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages
limitinteger
จำนวนรายการต่อครั้ง (ค่าเริ่มต้น 50 สูงสุด 200)
offsetinteger
ข้ามกี่รายการก่อนเริ่มนับ

การตอบกลับ

  • 200{ items, total, limit, offset }
post/api/v1/canon/pitakasเพิ่มปิฎกต้องมีคีย์

ตรวจด้วยตัวตรวจชุดเดียวกับฟอร์มในหน้าแอดมิน ข้อความที่ปฏิเสธจึงเป็นประโยคภาษาไทยประโยคเดียวกัน และทุกครั้งที่เขียนสำเร็จจะมีบรรทัดใน content_edit

เนื้อคำขอ (Request Body)

ฟิลด์ของปิฎก ตามที่ฟอร์มในหน้าแอดมินรับ

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
get/api/v1/canon/pitakas/{slug}ปิฎกรายการเดียว

ปิฎกรายการเดียว

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200ระเบียน
  • 404ไม่พบสิ่งที่ขอ
patch/api/v1/canon/pitakas/{slug}แก้ไขปิฎกต้องมีคีย์

แก้เฉพาะสิ่งที่ส่งมา — ระเบียนปัจจุบันถูกอ่านก่อน แล้ว body ทับลงไปเฉพาะคีย์ที่เอ่ยถึง ส่งฟิลด์เดียวก็เปลี่ยนฟิลด์เดียว · คีย์ที่ body เอ่ยถึงถูกแทนทั้งก้อน null และสตริงว่างต่างก็เป็นการลบค่านั้น และรายการถูกแทนไม่ใช่ต่อท้าย · สลักใน path คือระเบียนที่แก้ ส่ง slug ใน body เพื่อเปลี่ยนสลัก

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

ฟิลด์ของปิฎก

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
delete/api/v1/canon/pitakas/{slug}ลบปิฎกต้องมีคีย์

ลบปิฎก

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
post/api/v1/canon/pitakas/{slug}/moveย้ายลำดับปิฎกต้องมีคีย์

delta เป็น −1 หรือ 1 — ลำดับถูกเขียนใหม่เป็น ๑…n ทุกครั้ง

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

{ "delta": -1 }

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
get/api/v1/canon/divisionsรายการหมวดของพระไตรปิฎกทั้งหมด

รายการหมวดของพระไตรปิฎกทั้งหมด

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages
limitinteger
จำนวนรายการต่อครั้ง (ค่าเริ่มต้น 50 สูงสุด 200)
offsetinteger
ข้ามกี่รายการก่อนเริ่มนับ

การตอบกลับ

  • 200{ items, total, limit, offset }
post/api/v1/canon/divisionsเพิ่มหมวดของพระไตรปิฎกต้องมีคีย์

ตรวจด้วยตัวตรวจชุดเดียวกับฟอร์มในหน้าแอดมิน ข้อความที่ปฏิเสธจึงเป็นประโยคภาษาไทยประโยคเดียวกัน และทุกครั้งที่เขียนสำเร็จจะมีบรรทัดใน content_edit

เนื้อคำขอ (Request Body)

ฟิลด์ของหมวดของพระไตรปิฎก ตามที่ฟอร์มในหน้าแอดมินรับ

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
get/api/v1/canon/divisions/{slug}หมวดของพระไตรปิฎกรายการเดียว

หมวดของพระไตรปิฎกรายการเดียว

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200ระเบียน
  • 404ไม่พบสิ่งที่ขอ
patch/api/v1/canon/divisions/{slug}แก้ไขหมวดของพระไตรปิฎกต้องมีคีย์

แก้เฉพาะสิ่งที่ส่งมา — ระเบียนปัจจุบันถูกอ่านก่อน แล้ว body ทับลงไปเฉพาะคีย์ที่เอ่ยถึง ส่งฟิลด์เดียวก็เปลี่ยนฟิลด์เดียว · คีย์ที่ body เอ่ยถึงถูกแทนทั้งก้อน null และสตริงว่างต่างก็เป็นการลบค่านั้น และรายการถูกแทนไม่ใช่ต่อท้าย · สลักใน path คือระเบียนที่แก้ ส่ง slug ใน body เพื่อเปลี่ยนสลัก

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

ฟิลด์ของหมวดของพระไตรปิฎก

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
delete/api/v1/canon/divisions/{slug}ลบหมวดของพระไตรปิฎกต้องมีคีย์

ลบหมวดของพระไตรปิฎก

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
post/api/v1/canon/divisions/{slug}/moveย้ายลำดับหมวดของพระไตรปิฎกต้องมีคีย์

delta เป็น −1 หรือ 1 — ลำดับถูกเขียนใหม่เป็น ๑…n ทุกครั้ง

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

{ "delta": -1 }

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
get/api/v1/canon/volumes/{volume}หนึ่งเล่ม

ที่ทางบนชั้น และฉบับที่เล่มนี้มีตัวบทให้อ่าน

พารามิเตอร์ (Path Parameters)

volumeintegerจำเป็น
เล่มที่ ๑–๔๕

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200{ volume, pitaka, division, editions, href, readHref }
  • 404ไม่พบสิ่งที่ขอ
get/api/v1/canon/volumes/{volume}/contentsสารบัญของเล่ม

เป็นต้นไม้ หรือ ?flat=1 เพื่อเอาหัวข้อทั้งหมดเรียงตามลำดับอ่าน พร้อม depth และ path · แต่ละหัวข้อมี ref (ตำแหน่งที่แก้แล้ว) และ ownRef (ตำแหน่งที่ระเบียนถืออยู่จริง) ซึ่งไม่เท่ากันเสมอไป

พารามิเตอร์ (Path Parameters)

volumeintegerจำเป็น
เล่มที่ ๑–๔๕

พารามิเตอร์ (Query Parameters)

flatstring
1 เพื่อเอาแบบเรียงแบน
langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200{ volume, division, entries, items }
  • 404ไม่พบสิ่งที่ขอ
get/api/v1/canon/volumes/{volume}/entriesหัวข้อของเล่ม เรียงแบน

หัวข้อของเล่ม เรียงแบน

พารามิเตอร์ (Path Parameters)

volumeintegerจำเป็น
เล่มที่ ๑–๔๕

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200{ volume, division, entries, items }
  • 404ไม่พบสิ่งที่ขอ
post/api/v1/canon/volumes/{volume}/entriesเพิ่มหัวข้อลงในสารบัญของเล่มนี้ต้องมีคีย์

หัวข้อสังกัดหมวด ไม่ใช่เล่ม — หมวดถูกหาจากเลขเล่มให้เอง เพื่อให้หัวข้อหนึ่งมีที่อยู่เดียวทั้งเว็บและ API · parent ใน body คือสลักของหัวข้อที่จะไปอยู่ใต้

พารามิเตอร์ (Path Parameters)

volumeintegerจำเป็น
เล่มที่ ๑–๔๕

เนื้อคำขอ (Request Body)

ฟิลด์ของหัวข้อ พร้อม parent ถ้ามี

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
get/api/v1/canon/volumes/{volume}/entries/{entry}หนึ่งหัวข้อ

ตำแหน่งที่อ้างอิง ฉบับที่มีตัวบท และลิงก์ไปอ่านที่ 84000 ทีละฉบับ

พารามิเตอร์ (Path Parameters)

volumeintegerจำเป็น
เล่มที่ ๑–๔๕
entrystringจำเป็น
สลักของหัวข้อ

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200{ volume, division, entry, editions, links }
  • 404ไม่พบสิ่งที่ขอ
patch/api/v1/canon/volumes/{volume}/entries/{entry}แก้ไขหัวข้อต้องมีคีย์

แก้เฉพาะสิ่งที่ส่งมา เหมือน PATCH เส้นอื่น · ที่นี่สำคัญกว่าที่อื่น เพราะทุกครั้งที่บันทึก ทุกคอลัมน์ของ ref ถูกเขียนใหม่ — body ที่ไม่พูดถึงตำแหน่ง จึงเคยแปลว่าหัวข้อนี้ไม่อยู่ที่ไหนเลย

พารามิเตอร์ (Path Parameters)

volumeintegerจำเป็น
เล่มที่ ๑–๔๕
entrystringจำเป็น
สลักของหัวข้อ

เนื้อคำขอ (Request Body)

ฟิลด์ของหัวข้อ

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
delete/api/v1/canon/volumes/{volume}/entries/{entry}ลบหัวข้อต้องมีคีย์

ลบทั้งกิ่ง — หัวข้อที่อยู่ข้างใต้หายไปด้วย และลิงก์จากหัวข้อเหล่านั้นไปยังตัวบทหายไปด้วย · ตัวบทเองไม่ถูกลบ เพราะเป็นของที่ import มา ไม่ใช่ของที่บรรณาธิการเขียน

พารามิเตอร์ (Path Parameters)

volumeintegerจำเป็น
เล่มที่ ๑–๔๕
entrystringจำเป็น
สลักของหัวข้อ

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
post/api/v1/canon/volumes/{volume}/entries/{entry}/moveย้ายลำดับหัวข้อในกลุ่มพี่น้องของมันต้องมีคีย์

ย้ายลำดับหัวข้อในกลุ่มพี่น้องของมัน

พารามิเตอร์ (Path Parameters)

volumeintegerจำเป็น
เล่มที่ ๑–๔๕
entrystringจำเป็น
สลักของหัวข้อ

เนื้อคำขอ (Request Body)

{ "delta": -1 }

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
post/api/v1/canon/volumes/{volume}/entries/{entry}/nestเลื่อนหัวข้อเข้าหรือออกหนึ่งชั้นต้องมีคีย์

direction เป็น in หรือ out · ลึกได้ถึงหกชั้น เกินกว่านั้นตอบ 409

พารามิเตอร์ (Path Parameters)

volumeintegerจำเป็น
เล่มที่ ๑–๔๕
entrystringจำเป็น
สลักของหัวข้อ

เนื้อคำขอ (Request Body)

{ "direction": "in" }

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
get/api/v1/canon/volumes/{volume}/entries/{entry}/passageตัวบทของหัวข้อ ในฉบับหนึ่ง

?edition= ที่ไม่รู้จักถูกปฏิเสธ ไม่ตกกลับไปฉบับหลวง — ไม่เช่นนั้นไคลเอนต์จะพิมพ์ตัวบทของฉบับหนึ่งใต้ชื่อของอีกฉบับ · variant คือที่ที่คลังอีกแห่งลงตัวบทต่างออกไป ส่งมาทั้ง spans และคู่คำ

พารามิเตอร์ (Path Parameters)

volumeintegerจำเป็น
เล่มที่ ๑–๔๕
entrystringจำเป็น
สลักของหัวข้อ

พารามิเตอร์ (Query Parameters)

editionstring
royal · pali · roman (ค่าเริ่มต้น royal)
langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200ตัวบท พร้อมย่อหน้าที่ตัดไว้แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 404ไม่พบสิ่งที่ขอ
get/api/v1/canon/volumes/{volume}/layoutเล่มนี้แบ่งหน้าอย่างไร

บทและจำนวนหน้า ไม่มีตัวอักษรของตัวบทเลย · สองฉบับแบ่งหน้าไม่เหมือนกัน หน้า ๔๐ ของไทยกับของบาลีจึงไม่ใช่ที่เดียวกัน — ต้องถามแยกตามฉบับเสมอ

พารามิเตอร์ (Path Parameters)

volumeintegerจำเป็น
เล่มที่ ๑–๔๕

พารามิเตอร์ (Query Parameters)

editionstring
royal · pali · roman
langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200{ volume, edition, editionLabel, totalPages, chapters }
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 404ไม่พบสิ่งที่ขอ
get/api/v1/canon/volumes/{volume}/pages/{number}หนึ่งหน้าของเล่ม

หนึ่งหน้าของเล่ม

พารามิเตอร์ (Path Parameters)

volumeintegerจำเป็น
เล่มที่ ๑–๔๕
numberintegerจำเป็น
เลขหน้า เริ่มที่ ๑

พารามิเตอร์ (Query Parameters)

editionstring
royal · pali · roman
langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200{ number, chapter, chapterTitle, heading?, paragraphs, totalPages }
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 404ไม่พบสิ่งที่ขอ
get/api/v1/canon/readingชื่อและจำนวนหน้าของเล่มที่ค้างไว้

?at=27:royal,3:pali — จำนวนหน้าของเล่มเป็นผลของการแบ่งหน้า ไม่ใช่ฟิลด์ในระเบียน จึงไม่สร้างทั้งสี่สิบห้าเล่มให้ผู้เรียกที่ต้องการสองเล่ม

พารามิเตอร์ (Query Parameters)

atstring
คู่ เล่ม:ฉบับ คั่นด้วยจุลภาค สูงสุด ๒๔ คู่
langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200{ places }

ชาดก ๕๔๗ เรื่อง

jataka · ๑๒ คำสั่ง

ดูเอกสารทั้งหมด
get/api/v1/jatakaรายการชาดกทั้งหมด

รายการชาดกทั้งหมด

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages
nipatastring
สลักของนิบาต
vaggastring
ชื่อวรรค
limitinteger
จำนวนรายการต่อครั้ง (ค่าเริ่มต้น 50 สูงสุด 200)
offsetinteger
ข้ามกี่รายการก่อนเริ่มนับ

การตอบกลับ

  • 200{ items, total, limit, offset }
post/api/v1/jatakaเพิ่มชาดกต้องมีคีย์

ตรวจด้วยตัวตรวจชุดเดียวกับฟอร์มในหน้าแอดมิน ข้อความที่ปฏิเสธจึงเป็นประโยคภาษาไทยประโยคเดียวกัน และทุกครั้งที่เขียนสำเร็จจะมีบรรทัดใน content_edit

เนื้อคำขอ (Request Body)

ฟิลด์ของชาดก ตามที่ฟอร์มในหน้าแอดมินรับ

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
get/api/v1/jataka/{slug}ชาดกรายการเดียว

ชาดกรายการเดียว

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200ระเบียน
  • 404ไม่พบสิ่งที่ขอ
patch/api/v1/jataka/{slug}แก้ไขชาดกต้องมีคีย์

แก้เฉพาะสิ่งที่ส่งมา — ระเบียนปัจจุบันถูกอ่านก่อน แล้ว body ทับลงไปเฉพาะคีย์ที่เอ่ยถึง ส่งฟิลด์เดียวก็เปลี่ยนฟิลด์เดียว · คีย์ที่ body เอ่ยถึงถูกแทนทั้งก้อน null และสตริงว่างต่างก็เป็นการลบค่านั้น และรายการถูกแทนไม่ใช่ต่อท้าย · สลักใน path คือระเบียนที่แก้ ส่ง slug ใน body เพื่อเปลี่ยนสลัก

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

ฟิลด์ของชาดก

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
delete/api/v1/jataka/{slug}ลบชาดกต้องมีคีย์

ลบชาดก

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
post/api/v1/jataka/bulkวางรายการชาดกทั้งนิบาตต้องมีคีย์

บรรทัดละเรื่อง คั่นฟิลด์ด้วย | — เลข|ชื่อ|ว่าด้วย|อักษรโรมัน · จับคู่ด้วย เลข ไม่ใช่สลัก การวางรายการที่แก้แล้วซ้ำจึงเป็นการซ่อม ไม่ใช่การเพิ่มซ้ำ และแถวเดิมยังเก็บตำแหน่งที่บรรณาธิการเคยลงไว้

เนื้อคำขอ (Request Body)

{ "nipata": "nipata-1", "rows": ["1|อปัณณกชาดก|…|apannaka"] }

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
get/api/v1/jataka/nipatasรายการนิบาตทั้งหมด

รายการนิบาตทั้งหมด

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages
limitinteger
จำนวนรายการต่อครั้ง (ค่าเริ่มต้น 50 สูงสุด 200)
offsetinteger
ข้ามกี่รายการก่อนเริ่มนับ

การตอบกลับ

  • 200{ items, total, limit, offset }
post/api/v1/jataka/nipatasเพิ่มนิบาตต้องมีคีย์

ตรวจด้วยตัวตรวจชุดเดียวกับฟอร์มในหน้าแอดมิน ข้อความที่ปฏิเสธจึงเป็นประโยคภาษาไทยประโยคเดียวกัน และทุกครั้งที่เขียนสำเร็จจะมีบรรทัดใน content_edit

เนื้อคำขอ (Request Body)

ฟิลด์ของนิบาต ตามที่ฟอร์มในหน้าแอดมินรับ

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
get/api/v1/jataka/nipatas/{slug}นิบาตรายการเดียว

นิบาตรายการเดียว

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200ระเบียน
  • 404ไม่พบสิ่งที่ขอ
patch/api/v1/jataka/nipatas/{slug}แก้ไขนิบาตต้องมีคีย์

แก้เฉพาะสิ่งที่ส่งมา — ระเบียนปัจจุบันถูกอ่านก่อน แล้ว body ทับลงไปเฉพาะคีย์ที่เอ่ยถึง ส่งฟิลด์เดียวก็เปลี่ยนฟิลด์เดียว · คีย์ที่ body เอ่ยถึงถูกแทนทั้งก้อน null และสตริงว่างต่างก็เป็นการลบค่านั้น และรายการถูกแทนไม่ใช่ต่อท้าย · สลักใน path คือระเบียนที่แก้ ส่ง slug ใน body เพื่อเปลี่ยนสลัก

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

ฟิลด์ของนิบาต

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
delete/api/v1/jataka/nipatas/{slug}ลบนิบาตต้องมีคีย์

ลบนิบาต

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
post/api/v1/jataka/nipatas/{slug}/moveย้ายลำดับนิบาตต้องมีคีย์

delta เป็น −1 หรือ 1 — ลำดับถูกเขียนใหม่เป็น ๑…n ทุกครั้ง

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

{ "delta": -1 }

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง

หมวดธรรมที่นับเป็นชุด

dhamma-groups · ๑๒ คำสั่ง

ดูเอกสารทั้งหมด
get/api/v1/dhamma-groupsรายการหมวดธรรมทั้งหมด

รายการหมวดธรรมทั้งหมด

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages
setstring
สลักของหมวดจำนวน
sizestring
จำนวนสมาชิกในหมวด เช่น 4 คือจตุกกะ
limitinteger
จำนวนรายการต่อครั้ง (ค่าเริ่มต้น 50 สูงสุด 200)
offsetinteger
ข้ามกี่รายการก่อนเริ่มนับ

การตอบกลับ

  • 200{ items, total, limit, offset }
post/api/v1/dhamma-groupsเพิ่มหมวดธรรมต้องมีคีย์

ตรวจด้วยตัวตรวจชุดเดียวกับฟอร์มในหน้าแอดมิน ข้อความที่ปฏิเสธจึงเป็นประโยคภาษาไทยประโยคเดียวกัน และทุกครั้งที่เขียนสำเร็จจะมีบรรทัดใน content_edit

เนื้อคำขอ (Request Body)

ฟิลด์ของหมวดธรรม ตามที่ฟอร์มในหน้าแอดมินรับ

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
get/api/v1/dhamma-groups/{slug}หมวดธรรมรายการเดียว

หมวดธรรมรายการเดียว

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200ระเบียน
  • 404ไม่พบสิ่งที่ขอ
patch/api/v1/dhamma-groups/{slug}แก้ไขหมวดธรรมต้องมีคีย์

แก้เฉพาะสิ่งที่ส่งมา — ระเบียนปัจจุบันถูกอ่านก่อน แล้ว body ทับลงไปเฉพาะคีย์ที่เอ่ยถึง ส่งฟิลด์เดียวก็เปลี่ยนฟิลด์เดียว · คีย์ที่ body เอ่ยถึงถูกแทนทั้งก้อน null และสตริงว่างต่างก็เป็นการลบค่านั้น และรายการถูกแทนไม่ใช่ต่อท้าย · สลักใน path คือระเบียนที่แก้ ส่ง slug ใน body เพื่อเปลี่ยนสลัก

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

ฟิลด์ของหมวดธรรม

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
delete/api/v1/dhamma-groups/{slug}ลบหมวดธรรมต้องมีคีย์

ลบหมวดธรรม

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
post/api/v1/dhamma-groups/bulkวางรายการหมวดธรรมทั้งหมวดจำนวนต้องมีคีย์

บรรทัดละรายการ เลข|ชื่อ|คำอธิบาย|เลขในพจนานุกรม จับคู่ด้วยเลขในพจนานุกรม

เนื้อคำขอ (Request Body)

{ "set": "set-4", "rows": ["137|กรรมกิเลส 4|…|137"] }

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
get/api/v1/dhamma-groups/setsรายการหมวดจำนวนทั้งหมด

รายการหมวดจำนวนทั้งหมด

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages
limitinteger
จำนวนรายการต่อครั้ง (ค่าเริ่มต้น 50 สูงสุด 200)
offsetinteger
ข้ามกี่รายการก่อนเริ่มนับ

การตอบกลับ

  • 200{ items, total, limit, offset }
post/api/v1/dhamma-groups/setsเพิ่มหมวดจำนวนต้องมีคีย์

ตรวจด้วยตัวตรวจชุดเดียวกับฟอร์มในหน้าแอดมิน ข้อความที่ปฏิเสธจึงเป็นประโยคภาษาไทยประโยคเดียวกัน และทุกครั้งที่เขียนสำเร็จจะมีบรรทัดใน content_edit

เนื้อคำขอ (Request Body)

ฟิลด์ของหมวดจำนวน ตามที่ฟอร์มในหน้าแอดมินรับ

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
get/api/v1/dhamma-groups/sets/{slug}หมวดจำนวนรายการเดียว

หมวดจำนวนรายการเดียว

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200ระเบียน
  • 404ไม่พบสิ่งที่ขอ
patch/api/v1/dhamma-groups/sets/{slug}แก้ไขหมวดจำนวนต้องมีคีย์

แก้เฉพาะสิ่งที่ส่งมา — ระเบียนปัจจุบันถูกอ่านก่อน แล้ว body ทับลงไปเฉพาะคีย์ที่เอ่ยถึง ส่งฟิลด์เดียวก็เปลี่ยนฟิลด์เดียว · คีย์ที่ body เอ่ยถึงถูกแทนทั้งก้อน null และสตริงว่างต่างก็เป็นการลบค่านั้น และรายการถูกแทนไม่ใช่ต่อท้าย · สลักใน path คือระเบียนที่แก้ ส่ง slug ใน body เพื่อเปลี่ยนสลัก

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

ฟิลด์ของหมวดจำนวน

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
delete/api/v1/dhamma-groups/sets/{slug}ลบหมวดจำนวนต้องมีคีย์

ลบหมวดจำนวน

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง
post/api/v1/dhamma-groups/sets/{slug}/moveย้ายลำดับหมวดจำนวนต้องมีคีย์

delta เป็น −1 หรือ 1 — ลำดับถูกเขียนใหม่เป็น ๑…n ทุกครั้ง

พารามิเตอร์ (Path Parameters)

slugstringจำเป็น
สลักของระเบียน

เนื้อคำขอ (Request Body)

{ "delta": -1 }

การตอบกลับ

  • 200ลบแล้ว
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
  • 412ส่ง If-Match มาแต่ระเบียนขยับไปแล้ว — โหลดใหม่แล้วลองอีกครั้ง

ของทั้งเครื่อง

จำนวน ที่มา ภาษา และคำแปล · meta · ๖ คำสั่ง

ดูเอกสารทั้งหมด
get/api/v1/metaเซิร์ฟเวอร์นี้มีอะไรอยู่เท่าไร

passages เป็น null เมื่อเครื่องนี้ยังไม่มีฐานตัวบท ซึ่งเป็นสภาพของ clone ใหม่

พารามิเตอร์ (Query Parameters)

langstring
ภาษาที่อยากอ่านระเบียน เช่น th หรือ en — ภาษาที่เซิร์ฟเวอร์นี้ยังไม่มีจะตกกลับไปเป็นภาษาหลักทีละฟิลด์ ไม่ปฏิเสธ ดูรายการที่รับได้ที่ /api/v1/languages

การตอบกลับ

  • 200จำนวนของทุกคอลเลกชัน และภาษาที่เผยแพร่
get/api/v1/sourcesตัวบทนี้เป็นของใคร

นับจากตัวบทที่เก็บไว้จริง ไม่ได้เขียนตายตัว จึงอ้างเกินจริงไม่ได้ · ไคลเอนต์ที่แสดงตัวบทควรแสดงข้อมูลนี้ด้วย

การตอบกลับ

  • 200{ texts, hasText, canon, dictionary }
get/api/v1/languages`?lang=` รับอะไรได้บ้างบนเครื่องนี้

`?lang=` รับอะไรได้บ้างบนเครื่องนี้

การตอบกลับ

  • 200{ items }
get/api/v1/healthเซิร์ฟเวอร์นี้ถือของที่ควรถืออยู่หรือเปล่า

ตอบ 503 เมื่อเปิดฐานตัวบทไม่ได้หรือในนั้นไม่มีตัวบท · ทุกอย่างที่เหลือในโปรเจกต์ถือว่าฐานที่หายไปคือ *เว็บที่มีของน้อยลง* ไม่ใช่เว็บที่พัง ซึ่งถูกสำหรับเครื่องที่เพิ่งโคลนมา และผิดสำหรับ deploy ที่ volume ไม่ได้ mount — เส้นนี้คือเส้นเดียวที่ถือว่ามันคือความผิดพลาด

การตอบกลับ

  • 200มีฐานข้อมูลและมีตัวบทอยู่ในนั้น
  • 503ไม่มีอย่างใดอย่างหนึ่ง — why บอกว่าอันไหน
get/api/v1/openapi.jsonเอกสารชุดนี้เอง

เผื่อไว้ให้เครื่องมือสร้างไคลเอนต์อ่าน · เทสต์ openapi.test.ts เดินไล่ไฟล์ route ทุกไฟล์แล้วเทียบกับเอกสารนี้ ถ้าเส้นใดหายไปหรือเมท็อดไม่ตรง เทสต์จะแดง

การตอบกลับ

  • 200เอกสาร OpenAPI 3.1
post/api/v1/translationsบันทึกคำแปลหนึ่งรายการต้องมีคีย์

ไปถึงตัวระเบียนไม่ได้จากที่นี่ — ไม่มีสลัก ไม่มีเลข ไม่มีปิฎก · ส่งทุกฟิลด์เป็นค่าว่างคือการลบคำแปลนั้น เพราะคำแปลมีทั้งชุดหรือไม่มีเลย

เนื้อคำขอ (Request Body)

{ "collection": "books", "id": 12, "language": "en", "title": "…" }

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก

การตัดสินเรื่องตัวบท

passages · ๓ คำสั่ง

ดูเอกสารทั้งหมด
post/api/v1/passages/settleตัดสินจุดที่สองคลังลงเรื่องต่างกันใต้ข้อเดียวกันต้องมีคีย์

keep คือตัวบทที่อยู่บนหน้าถูกแล้ว swap คืออีกคลังมีตัวบทที่ถูก ไม่มี “ยังไม่แน่ใจ” — การปล่อยไว้ในคิวคือคำตอบนั้น · ทั้งสองแบบติดธงว่าคนตัดสิน การ import รอบหน้าจะข้ามไป

เนื้อคำขอ (Request Body)

{ "division": "…", "entry": "…", "edition": "royal", "choice": "swap" }

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
post/api/v1/passages/reopenเอาคู่ที่ตัดสินไปแล้วกลับเข้าคิวต้องมีคีย์

เอาคู่ที่ตัดสินไปแล้วกลับเข้าคิว

เนื้อคำขอ (Request Body)

{ "division": "…", "entry": "…", "edition": "royal" }

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก
post/api/v1/passages/{passage}/hideถอนตัวบทออกจากหน้าอ่าน หรือเอากลับขึ้นไปต้องมีคีย์

ซ่อนไม่ใช่ลบ และไม่ได้ตัดสินอะไร — แถวยังอยู่ที่เดิม และคิวยังแสดงมันพร้อมเครื่องหมาย

พารามิเตอร์ (Path Parameters)

passageintegerจำเป็น
เลขระเบียนของตัวบท

เนื้อคำขอ (Request Body)

{ "hide": true }

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก

สำรองและกู้คืนทั้งชุด

collections · ๒ คำสั่ง

ดูเอกสารทั้งหมด
get/api/v1/collections/{name}คัดลอกคอลเลกชันทั้งชุดออกมาต้องมีคีย์

ไม่ใช่ผิวอ่านของ API — รูปที่ได้คือรูปทั้งคอลเลกชันแบบเดียวกับที่ /admin/data คัดออกและ dump-content.py เขียน ไม่ใช่ DTO ที่เส้นอื่นเผยแพร่ · ต้องมีคีย์ทั้งอ่านและเขียน เพราะเป็นทางออกฉุกเฉินของแอดมิน

พารามิเตอร์ (Path Parameters)

namestringจำเป็น
ชื่อคอลเลกชัน เช่น chants หรือ tipitaka-contents

การตอบกลับ

  • 200JSON ทั้งชุด
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 404ไม่พบสิ่งที่ขอ
put/api/v1/collections/{name}เขียนทับคอลเลกชันทั้งชุดต้องมีคีย์

อะไรที่ body ไม่พูดถึง จะหายไป · ตรวจรูปก่อนเขียน — คีย์ชั้นนอกและชนิดของแต่ละคีย์ ซึ่งเป็นความผิดพลาดที่เกิดขึ้นจริง (วางผิดไฟล์) · คีย์ที่ไม่รู้จักถูกปฏิเสธ ไม่ใช่เพิกเฉย

พารามิเตอร์ (Path Parameters)

namestringจำเป็น
ชื่อคอลเลกชัน

เนื้อคำขอ (Request Body)

คอลเลกชันทั้งชุด ในรูปเดียวกับที่ GET ส่งออกมา

การตอบกลับ

  • 200บันทึกทับระเบียนเดิมแล้ว
  • 201สร้างระเบียนใหม่แล้ว
  • 400คำขอไม่ถูกต้อง — body มี error.issues แยกรายฟิลด์เมื่อความผิดอยู่ที่ฟิลด์
  • 401ไม่ได้ส่งคีย์ หรือคีย์ไม่ถูกต้อง
  • 403เซิร์ฟเวอร์นี้ไม่เปิดให้เขียนผ่าน API (production ที่ไม่ได้ตั้ง DHAMMA_API_KEY)
  • 409ขัดกับสิ่งที่มีอยู่ — สลักซ้ำ, หมวดที่ยังมีสมาชิก