Misskey: /api-docが重すぎる

Created on 2 Apr 2020  ·  12Comments  ·  Source: syuilo/misskey

Summary

ReDocを使用しているものの、めちゃくちゃ重い。

解決策

  • DOM生成処理にかなり時間を要していると思われるので、サーバーサイドでレンダリングしてやればマシになるはず。
    → 実装してみた( #6216 )ものの、ReDocのシングルページで5MB程度になり、計算後のHTMLやDOMが大きすぎるのは同じ。若干軽くなったものの、サクサクにはならなかった。
  • 軽いAPIドキュメントジェネレーターを探す。
  • 一から実装する。厳しい。
✨Feature

All 12 comments

redoc-cli bundleでよさそう

redoc-cli的なものを自前で実装することにした
(依存関係にreactが混ざることになる…)

redoc-cli的なものを自前で実装することにした

理由気になる

ごめんやっぱなしで(redoc-cliでやりたいことができることがわかった)

やっぱredoc-cli bundle的なものを自前で実装することにした。
api.jsonをgulpでファイルにしたかったけど難しかった。

api.jsonの生成ができたのでredoc-cliをビルド時にやるようにした

――のですが、developに直接pushしてしまいました…
https://github.com/syuilo/misskey/commit/795fb0eb60ea475533b1d9a12182030f93f01cac

事前にDOM生成してHTMLに保存したところで重いのは変わらないのでCloseは見送ります

Dockerビルドがコケた

これってbuildにDB操作系の処理入れたらいけないやつ?

これってbuildにDB操作系の処理入れたらいけないやつ?

いけないと思う
いけなくないとしてもビルドにDBへの接続が必要というのは気持ち悪いのでやりたくない

ビルドにDBへの接続が必要というのは気持ち悪いのでやりたくない

そうするとapi.jsonをビルド時に生成できなくなるのでredoc-cliは使えなくなる

ここからとり得る選択肢としては、 #6216 を復活させる、軽いAPIドキュメントジェネレーターを探す、もしくは自前で実装する の3つぐらい?

あってかこれ現状の実装はDBが用意されてないとnpm run buildがエラー吐くような感じになってそう、これは直さないと(init後にnpm run redocさせるようにメッセージを入れれば良いはず)

やっぱスマートじゃないのよね

init後にnpm run redoc、dockerだとだめそう

Resolved by #6218
これで3割軽くなったのでClose、redoc-cliはRevertしました。

もっと軽くしろと思ったら:-1:をリアクションしてください。Reopenするかも。

Was this page helpful?
0 / 5 - 0 ratings