logologo
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
logologo
API Overview

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
แคช

@nocobase/cli

NocoBase CLI
ตัวแปรสภาพแวดล้อมส่วนกลาง

@nocobase/client

แอปพลิเคชัน
ปลั๊กอิน

@nocobase/database

คอลเลกชัน
ฟิลด์

interfaces

BaseInterface
ตัวดำเนินการ Filter

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
รีโพสิทอรี

shared

create-options
destroy-options
find-one
find-options
transaction
update-options

@nocobase/data-source-manager

DataSourceManager
แหล่งข้อมูล (abstract)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

ตัวจัดการแหล่งข้อมูล
โฟลว์บริบท
FlowEngine
FlowModel
ทรัพยากรเวิร์กโฟลว์

@nocobase/logger

Logger

@nocobase/server

AppCommand
แอปพลิเคชัน
AuditManager
บริบท
การไมเกรต
ปลั๊กอิน

@nocobase/sdk

Auth
สตอเรจ
Previous Pageปลั๊กอิน
Next PageAuth
TIP

เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ

#APIClient

#ภาพรวม

APIClient เป็น wrapper ที่พัฒนาขึ้นโดยใช้ axios เป็นพื้นฐานครับ/ค่ะ โดยมีไว้สำหรับใช้ในการเรียกใช้งาน (request) การดำเนินการกับทรัพยากร (resource actions) ของ NocoBase ผ่าน HTTP จากฝั่งไคลเอนต์ครับ/ค่ะ

#การใช้งานเบื้องต้น

class PluginSampleAPIClient extends Plugin {
  async load() {
    const res = await this.app.apiClient.request({
      // ...
    });
  }
}

#คุณสมบัติของอินสแตนซ์

#axios

อินสแตนซ์ของ axios ครับ/ค่ะ ซึ่งคุณสามารถใช้เพื่อเข้าถึง API ของ axios ได้ เช่น apiClient.axios.interceptors เป็นต้น

#auth

คลาสสำหรับการยืนยันตัวตนฝั่งไคลเอนต์ครับ/ค่ะ ดูรายละเอียดเพิ่มเติมได้ที่ Auth

#storage

คลาสสำหรับการจัดเก็บข้อมูลฝั่งไคลเอนต์ครับ/ค่ะ ดูรายละเอียดเพิ่มเติมได้ที่ Storage

#เมธอดของคลาส

#constructor()

คอนสตรักเตอร์ครับ/ค่ะ ใช้สำหรับสร้างอินสแตนซ์ของ APIClient

#รูปแบบการใช้งาน

  • constructor(instance?: APIClientOptions)

#ประเภท

interface ExtendedOptions {
  authClass?: any;
  storageClass?: any;
}

export type APIClientOptions =
  | AxiosInstance
  | (AxiosRequestConfig & ExtendedOptions);

#request()

ใช้สำหรับส่งคำขอ HTTP ครับ/ค่ะ

#รูปแบบการใช้งาน

  • request<T = any, R = AxiosResponse<T>, D = any>(config: AxiosRequestConfig<D> | ResourceActionOptions): Promise<R>

#ประเภท

type ResourceActionOptions<P = any> = {
  resource?: string;
  resourceOf?: any;
  action?: string;
  params?: P;
};

#รายละเอียด

#AxiosRequestConfig

พารามิเตอร์คำขอ axios ทั่วไปครับ/ค่ะ ดูรายละเอียดเพิ่มเติมได้ที่ Request Config

const res = await apiClient.request({ url: '' });
#ResourceActionOptions

พารามิเตอร์สำหรับคำขอการดำเนินการกับทรัพยากรของ NocoBase ครับ/ค่ะ

const res = await apiClient.request({
  resource: 'users',
  action: 'list',
  params: {
    pageSize: 10,
  },
});
คุณสมบัติประเภทคำอธิบาย
resourcestring1. ชื่อทรัพยากร เช่น a
2. ชื่อออบเจกต์ที่เกี่ยวข้องกับทรัพยากร เช่น a.b
resourceOfanyเมื่อ resource เป็นชื่อออบเจกต์ที่เกี่ยวข้องกับทรัพยากร จะหมายถึงค่าคีย์หลัก (primary key) ของทรัพยากรนั้นครับ/ค่ะ เช่น สำหรับ a.b จะหมายถึงค่าคีย์หลักของ a
actionstringชื่อการดำเนินการ (action)
paramsanyออบเจกต์พารามิเตอร์สำหรับคำขอ ซึ่งส่วนใหญ่เป็นพารามิเตอร์ URL ครับ/ค่ะ โดยเนื้อหาของคำขอ (request body) จะถูกเก็บไว้ใน params.values
params.valuesanyออบเจกต์เนื้อหาคำขอ (request body)

#resource()

ใช้สำหรับรับออบเจกต์เมธอดสำหรับการดำเนินการกับทรัพยากรของ NocoBase ครับ/ค่ะ

const resource = apiClient.resource('users');

await resource.create({
  values: {
    username: 'admin',
  },
});

const res = await resource.list({
  page: 2,
  pageSize: 20,
});

#รูปแบบการใช้งาน

  • resource(name: string, of?: any, headers?: AxiosRequestHeaders): IResource

#ประเภท

export interface ActionParams {
  filterByTk?: any;
  [key: string]: any;
}

type ResourceAction = (params?: ActionParams) => Promise<any>;

export type IResource = {
  [key: string]: ResourceAction;
};

#รายละเอียด

พารามิเตอร์ประเภทคำอธิบาย
namestring1. ชื่อทรัพยากร เช่น a
2. ชื่อออบเจกต์ที่เกี่ยวข้องกับทรัพยากร เช่น a.b
ofanyเมื่อ name เป็นชื่อออบเจกต์ที่เกี่ยวข้องกับทรัพยากร จะหมายถึงค่าคีย์หลัก (primary key) ของทรัพยากรนั้นครับ/ค่ะ เช่น สำหรับ a.b จะหมายถึงค่าคีย์หลักของ a
headersAxiosRequestHeadersHTTP headers ที่จะถูกส่งไปพร้อมกับคำขอการดำเนินการกับทรัพยากรในครั้งถัดไปครับ/ค่ะ