ごみ収集日の検索をLineからできるようにした

前回のLINE Notifyを使ってごみ収集日を自分にお知らせしてみた。に続き、ごみシリーズです。

会社で携わっているサービスをゴリゴリAPI化していく予定(やっていき)なので、その練習も兼ねて作成しました。

今回は、Messaging API(LineBot)を使って、メッセージから横浜市のゴミ収集日を検索できるようにしました。

現在は、ざっくりイメージとして実装してみた感じなので、機能強化・リファクタリングは今後行っていく予定です。

こんな感じです。

収集場所名を前方検索し、もし、町名がドンピシャで一致していたら、収集曜日を出力。複数ある場合は「もしかして?」と収集場所名・コードを一覧出力します。

収集場所コードでも検索ができるので、収集場所名がわからない場合は、ざっくり町名などを入れて調べ→コードで検索といった流れで調べます。

環境は、

で実装しました。今回作成したAPIは以下3つ

  • 収集場所コードから収集場所のスケジュールを返すAPI
  • 収集場所名を前方一致で検索し、一覧で返すAPI
  • 上記2つのAPIを使い、Lineでメッセージを受け取り、スケジュールや収集場所一覧を返すAPI

です。Restfulな感じで作りました。

今回は、データについては横浜市のページを見て手動で作っていますが、 今後は、横浜市のHPからスクレイピングしてデータを取り込み、それを返すようにしていきたいと思います。

実は、今回APIを実装するのが初めてだったのですが、API設計や命名規則な部分で悩みました。

  • Rest APIのURLの付け方
  • APIでどんなリクエストを受けるか、どんなレスポンス・JSONを返すか
  • Lineメッセージのルール作り

実はまだまだ納得がいっておりませんので、今後、バージョンアップする際には、特にこの辺を意識して取り組んでいきたいと思います。

では、また。