なろう小説apiを叩いてみる

IT記事

なろう小説でなにかツールでも作れないかなーと、とりあえず提供されているapiを叩いてみた。

環境はブラウザ(Javascript)から叩いてみる。その場合、出力形式でjsonpを選ぶとクロスサイトからも許可しているようなので、叩けるようだ。

まずjsonpを簡単に叩けるようにfetch-jsonpを入れる。

npm install fetch-jsonp

呼び出して使う。

import fetchJsonp from "fetch-jsonp";

fetchJsonp("https://api.syosetu.com/rank/rankget?out=jsonp&rtype=20130501-m")
      .then(response => response.json())
      .then(json => console.log(json))
      .catch(error => console.log(error));

上記ではなろう小説ランキングAPIというのを叩いている。

"https://api.syosetu.com/rank/rankget?out=jsonp&rtype=20130501-m"

outにjsonp、rtypeで日にちと月間ランキングなどを指定する。rtypeは必須だ。rtypeの書き方は公式ドキュメントで。

結果

(300) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, …]
[0 … 99]
0: {ncode: "N7648BN", pt: 36092, rank: 1}
1: {ncode: "N6475BO", pt: 33112, rank: 2}
2: {ncode: "N1383BO", pt: 27958, rank: 3}
3: {ncode: "N5090BO", pt: 26221, rank: 4}
4: {ncode: "N3017BO", pt: 24280, rank: 5}
5: {ncode: "N4943BO", pt: 19832, rank: 6}
6: {ncode: "N1995BO", pt: 18990, rank: 7}
7: {ncode: "N6899BO", pt: 18562, rank: 8}
8: {ncode: "N5371BO", pt: 16561, rank: 9}
9: {ncode: "N5981BN", pt: 16534, rank: 10}

300位までのランキングが帰ってきた。

ここからncodeという小説コードを使い、 別のapiから小説情報を取り寄せると良さそうだ。とりあえずここまで。