ブラウザの場合はdist/pt-restful-api-client.jsをダウンロードし、script要素で読みこんでください。
<script src="/path/to/pt-restful-api-client.js"></script>Node環境の場合はdist/pt-restful-api-client.jsをダウンロードし、import等で読みこんでください。
import PTRESTfulAPIClient from './pt-restful-api-client';npmコマンドでもインスール可能です。
npm i alfasado/pt-restful-api-client#main
APIディレクトリ(例:/powercmsx/api)までのパスとAPIバージョン(現在は1のみ)を指定します。
const client = new PTRESTfulAPIClient('/powercmsx/api', 1);例えばワークスペースID1のentryモデルの場合、以下のコードで記事一覧が取得できます。
const params = {
sort_by: 'published_on',
sort_order: 'desc',
};
const response = await client.listObjects('entry', 1, params); // 引数: モデル名, ワークスペースID, パラメーター
const json = await response.json();
// json.itemsにモデルのオブジェクト一覧が格納されている※awaitを使用しているので非同期関数の中で使用します。
async function getList() {
const response = await client.listObjects('entry', 1);
const json = await response.json();
}例えばワークスペースID1・entryモデルにあるIDが2の記事の場合、以下のコードで取得できます。
const response = await client.getObject('entry', 2, 1); // 引数: モデル名, オブジェクトのID, ワークスペースID
const entry = await response.json();
// entryに記事オブジェクトが格納されている認証処理を行うと、オブジェクトの作成・更新・削除を行うことができます。
※ブラウザ環境の場合は認証情報が見えてしまいますので扱いには十分ご注意ください。
例えばワークスペースID1のentryモデルの場合、以下のコードで記事が作成できます。
const client = new PTRESTfulAPIClient('/powercmsx/api', 1);
// 認証
const name = 'username';
const password = 'password';
const authResponse = await client.authentication(name, password);
const authData = await authResponse.json();
const token = authData.access_token;
// 投稿
const data = {
title: 'Hello World!',
text: '本文を入力します。',
basename: 'hello_world',
status: 4,
};
const response = await client.createObject('entry', 1, token, data); // 引数: モデル名, ワークスペースID, トークン, リクエストボディpowercmsx/docs/README-RESTfulAPI.mdもあわせてご確認ください。
ユーザー認証を実行します。
- name: string ユーザー名(必須)
- password: string パスワード(必須)
- remember: boolean アクセストークンの有効期限延長
スキーマの取得を行います。
- model: string モデル(必須)
- token: string アクセストークン(必須)
- workspaceId: number ワークスペースID
- keys: null | string 取得するキー
オブジェクトを作成します。
- model: string モデル(必須)
- workspaceId: number ワークスペースID(必須)
- token: string アクセストークン(必須)
- data: object リクエストボディ(必須)
オブジェクト一覧を取得します。
- model: string モデル(必須)
- workspaceId: number ワークスペースID
- params: object パラメーター
- token: string アクセストークン
オブジェクトを取得します。
- model: string モデル(必須)
- id: null | string | number オブジェクトID(またはプライマリカラムの値)(必須)
- workspaceId: number ワークスペースID
- params: object パラメーター
- token: string アクセストークン
オブジェクトを更新します。
- model: string モデル(必須)
- id: number オブジェクトID(必須)
- workspaceId: number ワークスペースID(必須)
- token: string アクセストークン(必須)
- data: object リクエストボディ(必須)
オブジェクトを削除します。
- model: string モデル(必須)
- id: number オブジェクトID(必須)
- workspaceId: number ワークスペースID(必須)
- token: string アクセストークン(必須)
コンタクトのトークンを取得します。
- formId: number フォームID(必須)
- workspaceId: number ワークスペースID
コンタクトデータのバリデーションを実行します。
- formId: number フォームID(必須)
- workspaceId: number ワークスペースID
- data: object リクエストボディ
コンタクトデータを送信します。
- formId: number フォームID(必須)
- workspaceId: number ワークスペースID(必須)
- data: object リクエストボディ(必須)
全文検索(SearchEstraierプラグイン)を実行します。
- model: string モデル(必須)
- workspaceId: number ワークスペースID(必須)
- params: object パラメーター(必須)
Fetch APIの呼び出しを行います。任意のエンドポイント(プラグインで拡張したエンドポイントなど)に対してリソース取得が可能なメソッドです。引数に応じて適切なリクエストを発行します。
- endpoint: string エンドポイントのパス(必須)(例:/entry/list, /authorization)
- method: string リクエストメソッド(必須)
- workspaceId: number ワークスペースID(必須)
- params: object パラメーター
- data: object リクエストボディ
- token: string アクセストークン