路線情報・駅情報のREST APIサービスを作りました

Program & Service

概要

路線・駅情報API
日本の駅情報と路線情報を提供します

Ruby on Rails 7 + Tailwind + daisyui で作りました。

まだ、エンティティの一覧と取得しかできませんが、これから機能拡充をしていきます。ほしいAPIがあったら教えて下さい。

  • ある駅の周辺駅を近い順に表示
  • GraphQL対応
  • 駅の距離

API呼び出し例

駅の名前と位置情報の一覧をCSVで取得する例

% curl -s https://train.teraren.com/stations.json| json_pp | jq '.[] | [.station_name, .lon, .lat] | @csv'
"\"函館\",\"140.726413\",\"41.773709\""
"\"五稜郭\",\"140.733539\",\"41.803557\""
"\"桔梗\",\"140.722952\",\"41.846457\""
"\"大中山\",\"140.71358\",\"41.864641\""
"\"七飯\",\"140.688556\",\"41.886971\""
"\"新函館北斗\",\"140.646525\",\"41.9054\""
"\"仁山\",\"140.635183\",\"41.930011\""
"\"大沼\",\"140.669347\",\"41.971954\""
"\"大沼公園\",\"140.669758\",\"41.980958\""
"\"赤井川\",\"140.642678\",\"42.003267\""
"\"駒ケ岳\",\"140.610476\",\"42.038809\""
"\"東山\",\"140.605222\",\"42.06172\""
"\"姫川\",\"140.591632\",\"42.081312\""
"\"池田園\",\"140.700333\",\"41.990692\""
"\"流山温泉\",\"140.716358\",\"42.003483\""
"\"銚子口\",\"140.720656\",\"42.015471\""
"\"鹿部\",\"140.771393\",\"42.06439\""
"\"渡島沼尻\",\"140.747596\",\"42.10706\""
"\"渡島砂原\",\"140.689451\",\"42.12164\""
"\"掛澗\",\"140.64598\",\"42.119205\""
"\"尾白内\",\"140.613449\",\"42.111232\""
"\"東森\",\"140.59353\",\"42.106823\""
"\"森\",\"140.573846\",\"42.108917\""
"\"桂川\",\"140.5427876\",\"42.1156004\""
"\"石谷\",\"140.506525\",\"42.135519\""
"\"本石倉\",\"140.471957\",\"42.159668\""
"\"石倉\",\"140.458436\",\"42.17285\""
"\"落部\",\"140.420755\",\"42.187617\""
"\"野田生\",\"140.37586\",\"42.217104\""
"\"山越\",\"140.326593\",\"42.231172\""
"\"八雲\",\"140.273342\",\"42.253391\""
"\"鷲ノ巣\",\"140.269919\",\"42.278389\""
"\"山崎\",\"140.2746\",\"42.314635\""
"\"黒岩\",\"140.288173\",\"42.368296\""
"\"北豊津\",\"140.297868\",\"42.400969\""
"\"国縫\",\"140.320885\",\"42.439319\""
"\"中ノ沢\",\"140.346077\",\"42.477928\""
"\"長万部\",\"140.37507\",\"42.512477\""
"\"長万部\",\"140.37507\",\"42.512477\""
"\"二股\",\"140.320821\",\"42.575869\""
"\"蕨岱\",\"140.313353\",\"42.626353\""
"\"黒松内\",\"140.305704\",\"42.669608\""
"\"熱郛\",\"140.375084\",\"42.675653\""
"\"目名\",\"140.465742\",\"42.761432\""
"\"蘭越\",\"140.52894\",\"42.804542\""
"\"昆布\",\"140.596107\",\"42.797984\""
"\"ニセコ\",\"140.684588\",\"42.808746\""
"\"比羅夫\",\"140.722615\",\"42.84856\""
"\"倶知安\",\"140.745471\",\"42.90164\""
"\"小沢\",\"140.677657\",\"42.97185\""

Tailwind良い

最近、lighthouseでのベンチマークをしているとCSSやJSが重すぎるというアラートが出ています。

assetをprecompileすると一部のスタイルしか使わないのに全部を読み込まないといけなかったのが必要最低限の読み込みだけで済むようになりました。

おかげで、lighthouseのスコアがめちゃめちゃ高い!

しかしながら、TailwindはOSSでは無いので、今後長期的にコミュニティが乗っかってくるのかは不明です。

しかもライセンスの制約が厳しくて、コンポーネントの配布が制限されています。Twitter Bootstrapの場合はテーマがたくさん作られたことによって導入のハードルをかなり下げましたが、Tailwindはそのようなコンポーネントが制限されているようです。

じゃあ、このnpmは良いのか?って感じがします。。。

daisyUI — Tailwind CSS Components
Tailwind Components Library - Free components for Tailwind CSS

コメント