オープンソースの社内WikiであるGROWIではREST APIが公開されています。このAPIをより簡単に使えるよう、TypeScript/JavaScript SDKを開発しています。まだ途中ですが、徐々に機能追加していきます。
今回はページのCRUD(Create, Read, Update, Delete)操作を行う方法を解説します。
注意点
こちらはコミュニティSDKになります。公式への問い合わせはご遠慮ください。
ソースコード
GROWI TypeScript/JavaScript SDKのソースコードはGitHubにて公開しています。ライセンスはMITです。
インストール
インストールはnpm/yarn経由で行います。
$ npm install @goofmint/growi-js
# または
$ yarn add @goofmint/growi-js
使い方
まずはSDKをインポートします。
const { GROWI } = require('@goofmint/growi-js');
// または
import { GROWI } from '@goofmint/growi-js';
そして、初期化します。この時、GROWIのAPIトークンを指定します。
const growi = new GROWI({ apiToken: 'your-api-token' });
この他、以下のパラメーターを用意しています。
-
url
: GROWIのURLを指定します。デフォルトはhttp://localhost:3000
です。 -
path
: GROWIのページパスを指定します。デフォルトは `` です。サブディレクトリにインストールしている際に指定します。
ページの取得
現在はルートからのページ取得に対応しています。返ってくるのは Page
オブジェクトです。
const page = await growi.root();
ページ本文は contents
メソッドで取得します。
const contents = await page.contents();
子ページの取得
子ページを取得するには children
メソッドを使います。これは Page
の配列です。
const children = await page.children();
本文の更新
本文をアップデートする際には、 contents
メソッドに本文を適用してください。そして、 save
メソッドを呼び出します。
page.contents('新しい本文');
await page.save();
新しいページの作成
新しいページを作成するには、 create
メソッドを使います。
const newPage = await growi.create({name: '新しいページ'});
作成時には、 body
パラメーターで本文を、 grant
パラメーターで公開範囲を指定できます。
const newPage = await page.create({ name, grant: growi.Page.Grant.public });
ページの削除
ページの削除は remove
メソッドを使います。
await page.remove();
オプションのパラメーターとして isCompletely
を指定すると、ページを物理削除します。 isRecursively
を指定すると、子ページも再帰的に削除します。
まとめ
GROWIは社内Wikiとして、社内システムとのデータ連係ニーズが出やすいでしょう。ぜひ、Node.js SDKを使って、GROWIをシステムから操作してください。