「new KintoneRestAPIClient({ guestSpaceId })」のguestSpaceIdサポートを要望したい

kintoneのプラグインを開発する時、KintoneRestAPIClientオブジェクトを取得するのが慣用句のようですが、ゲストスペース内でも動作するようにするためには、「window.location.pathnameを参照してゲストスペースIDを取得して、KintoneRestAPIClientのコンストラクタに渡す」という処置も必要なようです。

ところが、先人が作られた便利なkintoneプラグインの中には、引数無でKintoneRestAPIClientのコンストラクタを呼びだしているだけのプラグインが在ります。 偶々 ソースコードも公開されている便利なプラグインの作者の方に後段のコード片をpull requestしてはみたのですが、一向にmeargeしていただけません。

master-maintenance1-peer-connect/custom-reference-table (github.com)

 

そこで、エンドユーザ側で開発されたkintoneプラグインのコードを改修しなくてもゲストスペース配下で動作するよう、Kintone rest clientのAPIの一つであるKintoneRestAPIClientコンストラクタの仕様を「その時点で動作している環境で使用可能なKintoneRestAPIClientオブジェクトを返すものとする。 そのために、ゲストスペース配下でKintoneRestAPIClientコンストラクタが呼ばれた場合は、guestSpaceIdプロパティの初期値を 当該環境のゲストスペースIDとする」という風な仕様変更依頼をしたくなりました。

さて、どのように仕様改善をする方策があるか? 教示いただけませんでしょうか?


  • ゲストスペースIDを取得してKintoneRestAPIClientオブジェクトを生成するコード片

let guestSpaceId;
{
if (window.location.pathname.startsWith(‘/k/guest/’)) {
guestSpaceId = window.location.pathname.slice(‘/k/guest/’.length, window.location.pathname.indexOf(‘/’, ‘/k/guest/’.length))
}
}
const kintoneRestAPIClient = new KintoneRestAPIClient({ guestSpaceId });
Promise.all([
kintoneRestAPIClient.app.getFormFields({
app: appId,
preview: true
}),
kintoneRestAPIClient.app.getFormLayout({
app: appId,
preview: true
}),
]).then(([{ properties }, { layout }]) => {
後略