อ้างอิง › Local API
เอกสาร/อ้างอิง/Local API

อ้างอิง Local API

ทุก method ของ object cms ที่ได้จาก useEasyCMS() (Nuxt), getEasyCMS(config) (Next.js) หรือ createEasyCMS(config) มีเทสต์ตรวจรายการนี้กับ class EasyCMS ตัวอย่างดูได้ที่ Local API

Local API เชื่อผู้เรียกและข้ามกฎสิทธิ์ ส่ง { user, overrideAccess: false } เพื่อใช้กฎสิทธิ์เหมือน REST API

ตัวเลือก

ตัวเลือกใช้กับ
overrideAccessทุก methodfalse ใช้กฎสิทธิ์ของ user ค่าเริ่มต้น true
userทุก methodผู้ใช้ที่ใช้ตรวจสิทธิ์ null คือไม่ได้ login
contextทุก methodเรื่องอื่นนอกจากผู้ใช้ของการเรียก เช่น tenant ส่งให้กฎสิทธิ์ hook และ filterOptions ได้จาก forRequest หรือกำหนดเอง
depthการอ่านและเขียนจำนวนชั้นของ relationship ที่ populate ค่าเริ่มต้น 1 สูงสุด 3
localeการอ่านและเขียนภาษาของเนื้อหา หรือ 'all' เพื่อได้ { [locale]: value } ค่าเริ่มต้นคือภาษาเริ่มต้น
draftการอ่านรวมฉบับร่าง ค่าเริ่มต้นคืนเฉพาะที่เผยแพร่แล้ว
fallbackLocaleการอ่านใช้ค่าจากภาษาเริ่มต้นเมื่อค่าว่าง ค่าเริ่มต้นตาม localization.fallback
wherefind, countตัวกรอง: { field: { equals, not_equals, in, not_in, gt, gte, lt, lte, like, exists } } ใช้ร่วมกับ and / or ได้
sortfindpath ของ field ใส่ - เพื่อเรียงจากมากไปน้อย ค่าเริ่มต้น -createdAt
limitfindค่าเริ่มต้น 10 และ 0 คืนทุกรายการที่ตรง
pagefindเริ่มที่ 1 ค่าเริ่มต้น 1

find คืน { docs, totalDocs, limit, page, totalPages, hasNextPage, hasPrevPage }

Method

เอกสาร

Methodคืนค่า
find(collection, options?)หน้าหนึ่งของเอกสารรายการพร้อม where, sort, limit, page ส่ง count: false เพื่อข้ามการนับ (ได้ null) และ cursor เพื่อแบ่งหน้าด้วย cursor (nextCursor)
findById(collection, id, options?)เอกสาร | nullเอกสารเดียว
count(collection, options?)numberจำนวนที่ตรง where
create(collection, data, options?)เอกสารตรวจข้อมูล รัน hook และบันทึก
update(collection, id, data, options?)เอกสารแก้ field ที่ส่งมา ถ้ามี where จะบันทึกก็ต่อเมื่อเอกสารที่เก็บไว้ยังตรงเงื่อนไข (compare and set) ไม่ตรงคืน null เมื่อเรียกพร้อมกันสองครั้ง จะมีครั้งเดียวที่สำเร็จ
increment(collection, id, field, by, { min?, max? })number | nullบวก by เข้ากับ field ตัวเลขชั้นบนสุดในคำสั่งเดียว ปลอดภัยเมื่อเรียกพร้อมกัน เช่น สต็อก คืน null ถ้าผลจะเกิน min / max และ throw NotFoundError ถ้าไม่มีเอกสาร ไม่รัน hook และไม่ตรวจสิทธิ์
delete(collection, id, options?)เอกสารที่ถูกลบลบเวอร์ชันและงานตั้งเวลาของมันด้วย ถ้าลบผู้ใช้เมื่อเปิด auth.rbac: { transferTo: id } โอนเอกสารที่ผู้ใช้เป็นเจ้าของให้ผู้ใช้อีกคน ถ้าไม่ระบุ เอกสารจะไม่มีเจ้าของ

Media

Methodคืนค่า
upload({ data, name }, fields?, options?)เอกสาร mediaเก็บไฟล์ รูปจะได้ขนาดและรูปย่อ
uploadFromURL(url, fields?, options?)เอกสาร mediaดาวน์โหลดไฟล์จากลิงก์ แล้วทำแบบ upload จากลิงก์
mediaURL(key)stringURL ของไฟล์ที่เก็บไว้: URL สาธารณะ หรือ URL ของ API สำหรับไฟล์ส่วนตัว
signedMediaURL(doc, { expiresIn?, size? })stringลิงก์ไปไฟล์ส่วนตัวที่เปิดได้โดยไม่ต้องล็อกอินจนกว่าจะหมดอายุ (ค่าเริ่มต้น '1h' สูงสุด '7d') โฟลเดอร์ส่วนตัว
verifyMediaSignature(key, expires, signature)booleanลิงก์ที่เซ็นนั้นของจริงและยังไม่หมดอายุไหม
storageFor(isPrivate)StorageAdapterstorage ของไฟล์สาธารณะหรือไฟล์ส่วนตัว (upload.privateStorage)
createUpload({ name, size, type? }, fields?, options?){ ticket, upload }เริ่มอัปโหลดตรงไปที่ storage ไฟล์ใหญ่
completeUpload(ticket, options?)เอกสาร mediaตรวจไฟล์ที่ส่งตรงไปที่ storage แล้วสร้างเอกสาร
mediaUsage(ids)numberจำนวนเอกสารที่ใช้ไฟล์เหล่านี้ใน upload field ชั้นบนสุด

ฉบับร่างและเวอร์ชัน

Methodคืนค่า
unpublish(collection, id, options?)เอกสารเอาเอกสารออกจากเว็บ
discardDraft(collection, id, options?)เอกสารทิ้งฉบับร่างที่ค้างของเอกสารที่เผยแพร่แล้ว
findVersions(collection, id, options?)หน้าหนึ่งของเวอร์ชันใหม่สุดก่อน ต้องมีสิทธิ์แก้
findVersion(collection, id, versionId, options?)เวอร์ชัน | nullเวอร์ชันเดียวพร้อม data
restoreVersion(collection, id, versionId, options?)เอกสารใช้เวอร์ชันเก่าเป็นปัจจุบัน (เป็นฉบับร่างถ้ามี drafts)

Global

Methodคืนค่า
findGlobal(slug, options?)globalอ่าน global
updateGlobal(slug, data, options?)globalแก้ global
unpublishGlobal(slug, options?)globalเอาออกจากเว็บ
discardGlobalDraft(slug, options?)globalทิ้งฉบับร่างที่ค้าง
findGlobalVersions(slug, options?)หน้าหนึ่งของเวอร์ชันใหม่สุดก่อน
findGlobalVersion(slug, versionId, options?)เวอร์ชัน | nullเวอร์ชันเดียว
restoreGlobalVersion(slug, versionId, options?)globalใช้เวอร์ชันเก่าเป็นปัจจุบัน

ตัวอย่างสด

Methodคืนค่า
preview(collection, id | null, data, options?){ doc, url }เอกสารเสมือนบันทึก data แล้ว โดยไม่เขียนอะไรลงฐานข้อมูล
previewGlobal(slug, data, options?){ doc, url }แบบเดียวกันสำหรับ global
createPreviewToken(target, { expiresIn? })stringtoken ที่เปิดฉบับร่างหนึ่งรายการได้โดยไม่ต้อง login (ค่าเริ่มต้น 1 ชั่วโมง)
verifyPreviewToken(token)เป้าหมาย | nulltoken เปิดอะไร หรือ null ถ้าไม่ถูกต้องหรือหมดอายุ

การตั้งเวลา

Methodคืนค่า
schedule(collection, id, { action, at }, options?)งานเผยแพร่หรือยกเลิกเมื่อถึง at
findSchedule(collection, id, options?)รายการงานงานที่รออยู่ของเอกสาร เรียงตามเวลาที่ใกล้สุด
cancelSchedule(collection, id, jobId, options?)—ยกเลิกงานที่รออยู่
scheduleGlobal(slug, { action, at }, options?)งานแบบเดียวกันสำหรับ global
findGlobalSchedule(slug, options?)รายการงาน
cancelGlobalSchedule(slug, jobId, options?)—
upcomingSchedules({ limit?, from?, to?, user?, overrideAccess? })รายการงานงานถัดไปจากทุก collection และ global, from/to (ISO) เอาเฉพาะที่ถึงเวลาในช่วงนั้น

งานและ webhook

Methodคืนค่า
runJobs(now?){ scheduled, webhooks, emails, jobs, outbox }งานตั้งเวลาที่ถึงกำหนด webhook และอีเมลที่ต้องส่งซ้ำ jobs ของ config และรายการ outbox ที่ถึงเวลา (สิ่งที่ cron และตัวจับเวลาเรียก)
emit(event, data, about?)—ส่ง event ใน events ของ config (เช่น order.paid) ไปยัง webhook ที่ระบุไว้ about คือ { collection, id } Webhooks
runScheduled(now?){ ran, failed }เฉพาะงานตั้งเวลาที่ถึงกำหนด
retryWebhooks(now?){ sent, failed }เฉพาะ webhook ที่ถึงเวลาส่งซ้ำ
startScheduler(interval?)—รัน runJobs ทุก interval ms (ค่าเริ่มต้น 1 นาที) createEasyCMS เริ่มให้เองเมื่อมีการตั้งเวลาหรือมี webhook
flushWebhooks()—รอให้การส่ง webhook ที่กำลังทำอยู่เสร็จ เรียกก่อนฟังก์ชัน serverless จะจบ
flushOutbox()—เมื่อ outbox: true: รอให้ outbox รันงานที่การบันทึกทิ้งไว้จนถึงตอนนี้ เรียกก่อนฟังก์ชัน serverless จะจบ งานที่ล้มยังอยู่ในคิวรอ retry
sendEmail(message)—เข้าคิวอีเมลให้ adapter email ใน config แล้วส่งเบื้องหลัง อีเมล
flushEmails()—รอให้อีเมลที่กำลังส่งเสร็จ เรียกก่อนฟังก์ชัน serverless จะจบ
Methodคืนค่า
search(query, { collections?, locale?, limit?, page?, depth?, user?, overrideAccess? }){ hits: { collection, doc }[], total, page, limit, hasNextPage }เอกสารที่ publish แล้วของ collection ที่มี search เรียงจากตรงที่สุด อ่านตามตัวเลือกสิทธิ์ที่ส่งมา total นับก่อนกรองสิทธิ์ ค้นหา
reindexSearch(collection?){ collection, documents }[]สร้าง index ค้นหาใหม่จากฐานข้อมูล ทุก collection ที่ค้นได้หรือเฉพาะหนึ่ง collection

อื่นๆ

Methodคืนค่า
createApiKey({ name, permissions?, expiresAt?, user? }, options?){ key, doc }API key ใหม่ (เมื่อมี apiKeys: true) key จะถูกคืนมาที่นี่ครั้งเดียว
documentPermissions(collection, id, user){ update, delete }ผู้ใช้ทำอะไรกับเอกสารนี้ได้บ้าง
destroy()—หยุดตัวจับเวลา รอการส่ง webhook และปิดการเชื่อมต่อฐานข้อมูล
uniqueScope(collection, field, { user?, context? }){ [field]: value }field ที่ unique ห้ามซ้ำภายในอะไรสำหรับการเรียกนี้ (uniqueWithin เช่น tenant) ตามที่ hook จะตั้งให้ คืน {} ถ้า unique ทั้งระบบ ใช้หาเอกสารด้วย field นั้น
forRequest(request | headers){ user, context }ผู้ใช้ (cookie session หรือ Bearer token) และ context (onRequest) ของ request แบบเดียวกับ REST ส่งทั้งคู่พร้อม overrideAccess: false

object cms ยังมี config (config ที่ resolve แล้ว), auth (การ login และตรวจ session), auth.sso (การเข้าสู่ระบบด้วย auth.providers), audit (เมื่อเปิด audit: audit.record({ action, target, doc }) เขียนรายการ), roles (เมื่อเปิด auth.rbac: roles.allows(user, { collection }, operation) บอกว่า role ของผู้ใช้อนุญาตอะไร), db, storage, logger และ cwd

db คือ database adapter ที่อยู่ใต้กฎสิทธิ์ hook และ version สิ่งที่มันมีให้อาจเปลี่ยนได้ระหว่าง minor version ส่วน config คือ config ที่ resolve แล้ว: option ที่คุณตั้งคงที่ ส่วนที่เหลือ (ค่าเริ่มต้นที่เติมให้) อาจเพิ่มขึ้น @easy-cms/core/internal และ @easy-cms/drizzle เป็นของที่แพ็กเกจ @easy-cms/* ใช้ร่วมกัน ไม่ใช่ public API