APIClient

Ikhtisar

APIClient di-wrap berdasarkan axios, digunakan untuk melakukan request operasi resource NocoBase melalui HTTP di sisi client.

Penggunaan Dasar

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

Properti Instance

axios

Instance axios, dapat mengakses API axios, contoh apiClient.axios.interceptors.

auth

Class autentikasi client, lihat Auth.

storage

Class storage client, lihat Storage.

Method Class

constructor()

Constructor, membuat instance APIClient.

Signature

  • constructor(instance?: APIClientOptions)

Tipe

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

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

request()

Melakukan HTTP request.

Signature

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

Tipe

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

Detail

AxiosRequestConfig

Parameter request axios umum. Lihat Request Config.

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

Parameter request operasi resource NocoBase.

const res = await apiClient.request({
  resource: 'users',
  action: 'list',
  params: {
    pageSize: 10,
  },
});
PropertiTipeDeskripsi
resourcestring1. Nama resource, contoh a
2. Nama objek asosiasi resource, contoh a.b
resourceOfanySaat resource adalah nama objek asosiasi, primary key dari resource. Contoh saat a.b, mewakili primary key dari a
actionstringNama operasi
paramsanyObjek parameter request, terutama parameter URL, request body diletakkan di params.values
params.valuesanyObjek request body

resource()

Mendapatkan objek method operasi resource NocoBase.

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

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

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

Signature

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

Tipe

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

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

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

Detail

Nama ParameterTipeDeskripsi
namestring1. Nama resource, contoh a
2. Nama objek asosiasi resource, contoh a.b
ofanySaat resource adalah nama objek asosiasi, primary key dari resource. Contoh saat a.b, mewakili primary key dari a
headersAxiosRequestHeadersHTTP request header yang dibawa saat melakukan request operasi resource selanjutnya