マストドンのページネーションの実装を読んでいたら、ページネーションパラメータにmin_id, since_id, max_idの3つが登場することがわかった。
これらのパラメータの使い方だが、タイムラインを上から下へスクロールする時はmax_id
のパラメータを使う。下から上へスクロールする時はmin_id
を使えばよい。
since_idはmax_idを使う時に使えるのだけど使う必要はない。
ちなみに、おもしろいなーと思ったことがあってソースコードを読んでいると、パラメータに応じて検索結果を返すメソッドがpaginate_by_min_id、paginate_by_max_idの2つあった。
ソースコードだけを読んでいるとユースケースが思いつかないのでmax_id, min_idの両方が必要な理由はわからなかった。
git blameすると下からスクロールしたいんだが、というissueを発見し、by_min_idが実装された理由がわかった。
WEBだと上から下へしかスクロールしないので、paginate_by_max_idだけで足りるもんね。
※ min_idでの検索を見越してなんだろうけど、by_min_idが実装される前に max_id, since_id
という組み合わせの名前付けしたのは正しいと思った。