Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Paging in API
Search
r7kamura
July 04, 2014
Programming
3
8.5k
Paging in API
This is a presentation I used at #pagernight on 2014-07-04.
r7kamura
July 04, 2014
Tweet
Share
More Decks by r7kamura
See All by r7kamura
Railsアップグレード百景
r7kamura
11
6.3k
個人開発のやっていき方
r7kamura
94
23k
amakanにおける書籍のシリーズ判定方法について 2016-08-21
r7kamura
10
5.9k
Tenkaichi Bot Butoukai
r7kamura
11
5k
Chanko Hacking Guide
r7kamura
5
1.2k
Making things with something small
r7kamura
1
450
Hidden
r7kamura
0
63
Butsukari Geiko
r7kamura
9
36k
Casual CI Server
r7kamura
7
1.7k
Other Decks in Programming
See All in Programming
CSC307 Lecture 13
javiergs
PRO
0
150
データカタログ運用物語 〜令和6年夏の理想と現実〜
kuro_kurorrr
0
110
Temporalを取り巻く仕様を整理する
sajikix
0
120
Exploring the Gradually Lost Technical Skills in the Cloud Native Era
hwchiu
2
3.9k
ぼっちを避けて楽しむためのアノテコノテ / Various Tips and Tricks to Avoid Loneliness and Have Fun
nrslib
3
1.7k
Introduction to GitOps
hwchiu
0
110
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
coe401_
1
220
Modern Angular: Renovation for Your Applications
manfredsteyer
PRO
0
140
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
250
コード生成を伴うLLMエージェント - 2024.07.18 Tokyo AI
smiyawaki0820
11
4.1k
TiDB Serverless ~理想のServerless DBを考える~
soso_15315
1
160
CSC307 Lecture 06
javiergs
PRO
0
360
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Thoughts on Productivity
jonyablonski
64
4.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
23
1.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
245
1.2M
Building Flexible Design Systems
yeseniaperezcruz
323
37k
For a Future-Friendly Web
brad_frost
173
9.2k
The Cult of Friendly URLs
andyhume
75
5.9k
How to train your dragon (web standard)
notwaldorf
79
5.5k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
353
29k
Large-scale JavaScript Application Architecture
addyosmani
506
110k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
20
7.2k
How to Think Like a Performance Engineer
csswizardry
4
590
Transcript
AAPPIIのページングの話 ! @@rr77kkaammuurraa ##ppaaggeerrnniigghhtt
最近ワイワイしたもの ! ** JJSSOONN SScchheemmaaでいろいろやるやつ ** RRuubbyyのHHuubboottクローン ** 22つのSSQQLLから差分となるSSQQLLを生成するやつ **
テストからドキュメント生成するやつ ** uuiiuurreeooの総資産mmaacckkeerreellで監視するやつ
今日話さないこと ! ** UUIIの話 ** 京の地に眠るとされる110088種のページャ ** 僕の考えた最強のページネーション ** オープンソースの軽量コンテナDDoocckkeerrを使おう
** かわいいKKoottlliinn ** ##モリスナイト
今日話すこと ! ** AAPPIIこんな感じでつくりました ** ページャの実装こうなってます ** ページャちょっと怖い話 ** 所感
← ページングこんな感じ ((TTwwiitttteerr風の無限ページャ)) ! ※これはWWeebbブラウザ版 ((アプリの動画撮るの難しかった))
AAPPII データベース 各種WWeebbアプリ AAnnddrrooiidd 22001144--0022〜 iiOOSS 22001133--0088〜
GGEETT //ppiicckkuupp__rreecciippee GGEETT //ddaaiillyy__rraannkkiinnggss//22001144--0077--0044 ** トップページは大体キャッシュ ** 複数のAAPPIIリクエストを送ってる
** 日付毎にアクセス数上位2200件 ** 11リクエストで11日分 ** スクロールで次ページ読み込み GGEETT //ddaaiillyy__rraannkkiinnggss//22001144--0077--0044 GGEETT //ddaaiillyy__rraannkkiinnggss//22001144--0077--0033
GGEETT //hhoott__rreecciippeess??ppaaggee==11 GGEETT //hhoott__rreecciippeess??ppaaggee==22 ** つくれぽが1100件ついたレシピ ** スクロール ==>> ppaaggee==nn++11
GGEETT //rreecciippeess//sseeaarrcchh??ppaaggee==11 ** 検索AAPPII ** スクロール ==>> ppaaggee==nn++11 GGEETT //rreecciippeess//sseeaarrcchh??ppaaggee==22
GGEETT //ccaatteeggoorriieess これは見た目の都合で隠してるだけ ** カテゴリAAPPII ** ツリー構造で11親等先まで取得 ** ページャ必要なし
GGEETT //bbooookkmmaarrkk__ttaaggss ** MMYYフォルダ ((とユーザ情報)) ** ログイン中のときだけ使う ** ここもページャ必要なし GGEETT
//mmee
GGEETT //bbooookkmmaarrkkss??ppaaggee==11 GGEETT //bbooookkmmaarrkkss??ppaaggee==22 ** MMYYフォルダ内のレシピ返すAAPPII ** スクロール ==>> ppaaggee==nn++11
実装の話
要素技術 ※大したことやってないです ! ** LLiinnkk HHeeaaddeerr ** KKaammiinnaarrii ** その他
LLiinnkk HHeeaaddeerr ! ** RRFFCC 55998888 ((WWeebb LLiinnkkiinngg)) ** ヘッダ内に他ページへのリンク
** 最初・前・次・最後 を入�れてる ! Link: </recipes?page=2>; rel=“next”, </recipes?page=9>; rel=“last”
KKaammiinnaarrii ! ** あとで @@aa__mmaattssuuddaa がきっと ** 単純な配列にも適用できて便利 ** SSoollrrの検索結果とかにも使える
! Recipe.page(2).per(20) Kaminari::PaginatableArray.new(array)
その他 ! ** 社内用AAPPIIフレームワークがある ** 集合を定義したらAAPPIIになる ** II//FFが統一されてSSOOAAしやすい
RReessoouurrccee VVaalliiddaattiioonn PPaaggiinnaattiioonn JJssoonnEEnnccooddeerr RReeqquueesstt RReessppoonnssee AAuutthhoorriizzaattiioonn <<----ここで絞込 ++ LLiinnkkHHeeaaddeerr
class RecipesController < ApplicationController include Authorization ! prepend Pagination !
def index render json: resources end ! private ! def resources Recipe.published end end
ページャ怖い話 ! 「キャッシュ入�れた」 ! ! ! ! ! ! 「めでたい」「爆速」
「」「::++11::」 「iiOOSSアプリなんか“もっと見る”出ないんだけど?」
所感 ! ** 人は結局正規表現で数字だけ抜き取る ** この規模だと伝統的ページャでOOKK ** ページ数増えないサービスづくりが良い
おわり ! AAPPIIのページングの話 ! @@rr77kkaammuurraa ##ppaaggeerrnniigghhtt