593 文字
3 分
路線情報・駅情報のREST APIサービスを作りました
概要
train.teraren.com
路線・駅情報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.com
Tailwind CSS Component Library ⸺ daisyUI
Tailwind CSS Components Library for 2026 - Tailwind CSS components examples, Tailwind themes and Tailwind blocks for fast UI development

路線情報・駅情報のREST APIサービスを作りました
https://blog.teraren.com/posts/ekidata-api/ 関連記事
この記事が役に立ったら
GitHub Sponsorsで応援できます