593 文字
3 分
路線情報・駅情報のREST 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は良いのか?って感じがします。。。
路線情報・駅情報のREST APIサービスを作りました
https://blog.teraren.com/posts/ekidata-api/ Error response from daemon: network xxxxxxxx not foundエラーが出たけど解決
Rails 6.1.5でdb:migrationのときにreference周りでエラー