APIでmetadataつきjsonをexport
1000件レベルで毎日やる予定なので、あんまり負担かかる方法だとちょっとyosider.icon
2000件程度なら大丈夫だと思う(根拠なし)takker.icon
まじすか
同時の100件ずつくらいならいけた
ただ、ややserverに負荷がかかっている感じがした
少しだけガクついた
同時に1000件はやめるべき
serverからの応答が一段落ちた
もしserverの負荷を気にするなら、1件づつでもいいと思う
export目的なら多少fetchに時間がかかっても問題ないだろうし
それなら負担はかからないんですかね?yosider.icon
fetchとfetchの間で1秒くらい待てば十分じゃないかな
なるほど、間隔をあければいいのか
/icons/感謝.iconyosider.icon
https://scrapbox.io/api/page-data/export/ならbodyに{"metadata":true}を渡してPOSTすればできるみたいです
ほんとだtakker.icon
どうやらheadersに削ってはいけないparameterがあるようです
自分の環境ではここまで削ってもmetadataを取得できました
code:js
headers: {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0",
"Accept": "application/json, text/plain, */*",
"Accept-Language": "ja,en-US;q=0.7,en;q=0.3",
"Content-Type": "application/json;charset=utf-8",
"X-CSRF-TOKEN": window._csrf,
},
body: "{\"metadata\":true}",
method: "POST",
});
後日また試してみます
まじすみません…yosider.icon
そうか、普通に取るときのリクエストを見ればいいのか。。yosider.icon
いけたyosider.icon
"Content-Type"より上のやつは消して大丈夫でした
"charset=utf-8"もなくてもいい
Content-Typeをjsonに指定して、bodyをstringifyしておく必要があったということか
code:js
await fetch(
'/api/page-data/export/project.json',
{
method: 'POST',
headers: {
'X-CSRF-TOKEN': window._csrf,
'Content-Type': 'application/json',
},
body: JSON.stringify({ metadata: true }),
}
);
/icons/感謝.iconですyosider.icon*2
こちらこそtakker.icon
調査を途中で終えても別の人がやってくれるの素晴らしい
2022-01-02頃以降APIがPOSTからGETに変更された