Perl
etherpad-lite

Etherpad-lite PerlのAPIモジュール

Etherpad-lite PerlのAPIモジュール

これは何?

Etherpad-liteのHTTP APIをPerlのモジュールを使って操作する方法の紹介です。

HTTP API

https://github.com/ether/etherpad-lite/wiki/HTTP-API

上記公式サイトの説明が非常にわかりやすいのでここを見ていただければ十分だと思います。

プログラム言語からのHTTP API操作のモジュール

HTTP API client libraries
https://github.com/ether/etherpad-lite/wiki/HTTP-API-client-libraries
を参照してください。
Pythonについては以下も参考になります。
https://qiita.com/gkmaro634/items/8152b8ba9572dc5b5aa5

PerlモジュールのAPI

http://search.cpan.org/~ldidry/Etherpad-1.2.13.0/lib/Etherpad.pm

上記のHTTP APIをPerlモジュールで操作します。

cpanm Etherpad

でインストールできます。

  • Mojoliciousとかが必要なようですのでPerlバージョン等は注意です。

使い方

https://github.com/ether/etherpad-lite/wiki/HTTP-API
のExample 1相当を実行してみます。

use strict;
use warnings;

use Etherpad;

my $url ='http://192.168.33.10:9001';
my $apikey ='secret';

my $ec = Etherpad->new(
   url      => $url,
   apikey   => $apikey
);

my $authorID = $ec->create_author_if_not_exists_for( '100', 'John');
print "$authorID:authorID\n";

my $groupID = $ec->create_group_if_not_exists_for('999');
print "$groupID:groupID\n";

my $padID = $ec->create_group_pad( $groupID, 'padName' ,'test1');
print "$padID:padID\n";

my $sessionID =$ec->create_session($groupID, $authorID, 1893423600);
print "$sessionID:sessionID\n";

得られたsessionIDの値をクッキーで
sessionIDというキーで書き込めば対象のドキュメントを編集できるようになります。

非常に簡単です。
ただPerlのAPIについてはMojoliciousが必要です。
やっていることの単純さの割にMojoliciousを必要とする理由は考えてみてもいいかもしれません。

  • おそらく主にMojo::Baseを使いたいためのようです。

場合によってはHTTP APIを直接操作するなり自分でモジュールを作るなりでもいいかもしれません。