オープンソースの社内WikiであるGROWIではREST APIが公開されています。このAPIをより簡単に使えるよう、TypeScript/JavaScript SDKを開発しています。まだ途中ですが、徐々に機能追加していきます。
今回はタグの操作方法を解説します。
注意点
こちらはコミュニティ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();
ページ名指定での取得
ページ名(パス)が分かっている場合には、 page
メソッドを使います。
const page = await growi.page({path: '/ページ名'});
タグの取得
タグは tags
メソッドで取得できます。結果は文字列の配列です。
const tags = await page.tags(); // ['test 1', 'test 2']
タグの追加
タグを追加する際には addTag
メソッドを使います。
await page.addTag('test 3');
タグの削除
タグを削除するには removeTag
メソッドを使います。
await page.removeTag('test 1');
タグでページを検索
タグでページを検索する際には、 searchByTag
メソッドを使います。結果は SearchResult
です。
const result = await growi.searchByTag('tag');
result.pages[0] instanceof growi.Page; // true
result.total // total number of pages
result.took // time taken for search
result.hitsCount // number of hits
まとめ
GROWIは社内Wikiとして、社内システムとのデータ連係ニーズが出やすいでしょう。ぜひ、Node.js SDKを使って、GROWIをシステムから操作してください。