名無しの旅人
2024/02/15 (木) 17:38:45
d7ee4@c7e98
REST APIについて
管理掲示板にてREST APIの使用について要望を出しましたが編集用掲示板で議論をするようにとのことなので、私自身のREST APIに対する意見を述べるとともに皆さんの意見もお聞かせいただきたく思います。
詳しくはwikiwiki公式のzawazawaコミュニティに記載されているのでそちらをご確認ください。ものすごく簡単に言うとブラウザで編集画面を開くことなくwikiを外部から操作することができます。
メリットとしてはプログラムを組むことで自動でwikiの内容を更新したり、取得したりできることが挙げられます。一方でデメリットとして属人性が高いことや、悪用されると手に負えなくなる可能性があること(手作業の何倍もの速さでページ編集ができるため)が挙げられます。
週間秘境素材早見表
- 曜日ごとにその日の素材と武器の表を表示(or曜日によって表の順番を入れ替え)するようにする
- 個人的に一番REST API活用でき、かつ重要度の高い事例だと思います
誕生日表示
- tomorrow_scheduleではインラインプラグインしか使えないが、より表現の幅を広げられる
- 誕生日表示レベルならtomorrow_scheduleで十分とも思いますが、アイデア次第で色々とできそうです
ページ閲覧数統計
- 今日100のページ情報を取得し記録しておく
- ページの閲覧数の記録を継続的にとることでMenuBarの位置決めの議論などで活用できるのではないかと思います(あと個人的に閲覧数の推移のデータは気になる)
時間指定表示
- 祈願情報やイベント情報など期間が決まっているものを指定時間に表示したり削除したりする
APIキー新規発行
- 管理連絡掲示板で新規発行を要望
- リアチャやInstantChatなど使い捨てチャットルームを利用してキーIDとシークレットの受け渡し
- 荒らし対応(後述)のためにAPIキーのメモ欄にzawazawaのIDを記録しておく
- 認証済みのアカウントのみコメントできる専用掲示板を作成してもいいと思います
荒らし対応
- 荒らし行為が行われた場合、wikiの編集日時とAPIキーの最終利用日時を照らし合わせて該当APIキーを削除
- 該当APIキーの運用者をzawazawa掲示板から追放して再度新規発行の要望をされる可能性を減らす
その他
- API経由で更新されるページは「:〇〇〇〇 - API」にページ名をするなどAPI経由で更新されていることを表記する(最新の編集欄を汚さないように”:”を付けるとなおよし)
- ページの一部分をAPI経由で更新する場合(例えばFrontPageに自動更新される曜日毎の秘境情報を表示させたいなど)、API経由で更新される箇所の個別ページ(「曜日別秘境 - API」)を作成しそれを元ページ(FrontPage)にincludeする
- 実装したコードや実装方法などを説明したページを、API更新されるページの直下に作成する(例:「:曜日別秘境 - API/詳細」)
- 既存の内容をAPI経由で更新するものに変える場合は元のコードを上記の詳細ページに記録しておく
- 何らかのエラーが起きた場合や内容を更新したい場合に運用者が蒸発してどうすることもできなくなった場合には、該当箇所をページごと削除しAPIキーも削除する。
実際にAPIを使った自動更新の例→リンク
通報 ...
運用案に書かれたことや、プログラムコードの管理方法もいいアイディアだと思いました。練習ページも拝見しましたがいいと思いました。GoogleSpreadsheetなら手軽でいいと思います。管理人さんの負担が増えたり荒らしのリスクがありますが、管理人さんがおっしゃっている「誰にとって・どの程度重要か、どれを実行すべきか」が大事になると思います。
週間秘境素材早見表はトップページの話だと思いますが使用するのはいいと思います。日で切り替えるのはtomorrow_scheduleでも一応可能ですが、レイアウトの自由度や切り替える時間の設定まで調節できると思います。
誕生日表示も現在のものより良くなるのならいいと思います。
ページ閲覧数統計で使うのもいいと思います。ただ推しキャラの閲覧数が少ないとショックを受ける方もいるとは思うのでデータの使用方法は難しそうです。またデータを取るだけなら外部ツールでも可能だと思いました。
どの案も、変更の要望に対応するなど継続して管理して頂けるならいいと思います。色々考えてくれているので放置したりは無さそうだと感じました。ただ必須なものでもないとも思いました。
使いたい場面があればページを作ってここで賛同を得てから、管理人さんに持っていくのがいいと思いました。
おっしゃるとおり運用に関しては、まず編集掲示板で案をだして他の方法がないか、必要度(そもそも本当に要るのか、REST APIを使わない案で妥協できないのかなど)を議論して賛同を得てから管理掲示板に行くというのを新規発行手順の一番初めにつけるべきですね。
閲覧数に関しては今日100や人気100で誰でも見れるのでRST APIうんぬんとかではない気もしますが…(統計で推しキャラの閲覧数の急落が見えてショックとかはある…かも?)。一応Google analytics(管理者しか見れないが)とかSimilarweb(正確な値まではわからない+これで見たところで感がある)で閲覧数を見たり、スクレイピングでREST APIの様に内容を取得するなどありますが、どれも統計を取って編集議論に役立てるのには使えない・使いにくい(スクレイピングは論外)ので、その点GoogleSheetにまとめてembedでwikiに埋め込んだりwikiページを編集して表を作ったりできるのでREST APIでしかできないことだと思います。
と言っても閲覧数の統計はただの例に過ぎないのでここらへんにしておきます。
APIを利用したほうが他の手段よりやりやすいなら、そのほうが良さそうですね
詳しくないので、的外れでしたらご容赦いただきたいですが...運用案を読んで感じたことをコメントさせてもらいます。(早い方が良いかなと思いまして)
問題点を出してみると、運用がプログラム作成者に一任されてしまう、ですかね?(実際のところ、一任してしまうことになるとは思うのですが)
ソースコードをwiki内で開示するとはいえ、実運用と異なる可能性が出てしまう?表面上は通常運用(例えば、日時による表示変更)しつつ、同時にこっそり別の動き(例えば、閲覧数取得)をするなど?(挙げた例だと、それをされたところで特に害はなさそうですが)
代案は考え中(私の中で二転三転しており...)なので、またコメントさせてもらうと思います。
(あ、4290さんが悪用するとか考えているわけではありませんからね...念のため...)
補足させてもらうと、匿名性のある一利用者がAPIキーとプログラムを管理する、というところに違和感を覚えた、という感じです。GitHubのように実際のソースコードが開示されていれば、話は変わってきますかね...?
最初に考えたことは...
より安全性を図るなら、管理人さんには負担をかけてしまいますが、
(1)試験用と運用用の2つのAPIキーを発行
(2)プログラム作成者は試験用キーでプログラムを作成&試験&ソースコードとマニュアルの開示
(3)問題なければ、完成したプログラムを管理人さん管理下にコピー、(管理人さんのみが知る)運用用キーを使って実運用
(4)試験用キーは、利用できないように削除
(5)プログラム修正が必要になれば、修正者は試験用キーを再発行して、修正&試験の(2)に戻る
でしょうか。(これはプログラム作成者が「匿名性のある一利用者」のままでいるパターンですね)
ちょっとしたプログラム修正でもハードルが高くなってしまいますが、影響が大きいことを考えると、仕方ないかと思わなくはない感じです。
さすがに厳しすぎると思って、次に考えたことは...
プログラム作成者は、プログラム管理人(?)として、管理人に準ずる立場となっていただく?(4290さん提案の「認証済みのアカウントのみコメントできる専用掲示板を使う」というのが近いでしょうか。)
それならプログラム管理人さんが自分でAPIキーとプログラムを管理するのは、問題ないように感じます。こっそり他の運用をしていても、管理者さんだからな、という感覚になるというか。(蒸発前に引き継ぎが必要というか)
仮にプログラムを組みたいという方がたくさんいるようなら、全員がプログラム管理人になるのではなく、「最初に考えたこと」での「管理人さん」を少数の「プログラム管理人さん」に置き換えた形が望ましいですかね。
最終的に思ったことは...
要は、プログラムがプログラム作成者の管理下にしかない状態は良くないので、wikiの管理人さん相手にはプログラムの所在を開示して、管理人さんが確認・編集可能な状態にしておく?(逆に他の人が編集できる状態も良くないかなと思わなくもないですが...)
いずれにせよ、プログラム作成者は、wikiの管理人さんと連絡が取れる状況とする。一利用者にとどまらず、プログラム管理者として活動する。という感じでしょうか。
まとまっていなくて恐縮ですが、一意見としてご覧いただければ幸いです。
ちなみに活用については、トップページの武器素材逆引き表が5:00に切り替え表示されるのは普通に有用だと思うので、提案されれば賛成できます。