仙台市営バスの時刻表やルート検索ができるAPIを作りました
2015-09-21
タイトルの通りです。
きっかけ
きっかけは知人が「市営バスのデータは開示できるか」と問い合わせたところ、データがもらえた�GitHubなどにアップロードしても良いといわれたことです。
ただデータがExcelでびっしり表組されたものだったので、適当にデータを引っ張ってくるスクリプトをPythonで書きました。
データセットはGitHubで公開しています。
ついでに作ったAPIを公開してみた
「せっかくなら知人と使えるAPIでも作ろうか」ということで、最初は内部向けのAPIを作りました。作っているうちに楽しくなってきて、いろいろ機能を追加していったら、割と便利なものが出来上がったので公開、という感じです。
仙台市の検索サイトやどこバスなどのサービスもありますが、すぐに重くなって使えなくなったり(雨の日や通勤時間は必ず)、着時刻検索ができなかったり…などと不満があったので、個人的には現時点でも割と満足しています。
無料で公開しておりますので、アプリケーション開発などにお役立てください。
一応ソースコードも公開しています。(が、現状はDBすら使っていないという設計だったりします。あとでAzure SQL+EFかMongoに移行します)
気になる方は下のリンクからどうぞ。
こちらはJavaScriptからいろいろ叩くサンプルです。APIでどんなことができるかをざっくりと知りたい方はこちらから。
ASP.NET Web APIのバージョニング
今回APIを作るうえで意識したのがWebAPIのバージョニングです。作成するうえで非常に勉強になったのが、しばやんせんせーのブログ(ASP.NET Web API でバージョニングを実現する方法を調べた)です。
私は記事中の一番下のライブラリを使いましたが、最初から意識していなくてもかなり簡単に移行することができました。また、ライブラリがIApiExplorerを実装したVersionedApiExplorerクラスをはじめから提供してくれたので、ASP.NETのHelp Pageも簡単にバージョニングに対応させることができました。ASP.NETのルーティングとConfigurationすごい…。
割とAPIのバージョニングが楽だった(Controllerだけなら https://t.co/IzkhrfdZzR
— シルバーウィーク (@bonprosoft)
本日のオチ
— 友利奈緒 (@fetburner)
作り始めたころは対応してなかったのですが、さすがGoogleせんせーですね。現在公開しているサービスの安定性や精度は保証できるものではないので、あくまでこちらのシステムは補助的な感じでご活用ください。