Upgrade to Pro — share decks privately, control downloads, hide ads and more …

APIつくってみた

 APIつくってみた

熊本GTFS-JP活用勉強会 vol.2の資料です。
https://kumamcn.connpass.com/event/169877/

Satoshi Gachi Fujimoto

March 12, 2020
Tweet

More Decks by Satoshi Gachi Fujimoto

Other Decks in Technology

Transcript

  1. Kuma GTFS API v1.0.2 • 仕様書 • http://ec2-18-180-6-76.ap-northeast-1.compute.amazonaws.com/ • 主な機能(※現在は産交バスのデータのみ対応)

    • フィード情報取得 • 事業者情報取得 • 事業者追加情報取得 • 運⾏区分情報取得 • 運⾏⽇情報取得 • 営業所情報取得 • 経路情報取得 • 経路追加情報取得 • 停留所・標柱情報取得 • 翻訳情報取得 • 便情報取得
  2. APIのつくり⽅ • AWS(Amazon Web Services) • Lambda • API Gateway

    • DynamoDB • Step Functions • S3 AWS Cloud AWS Lambda Amazon API Gateway AWS Step Functions AWS Lambda AWS Lambda Amazon DynamoDB
  3. DBの作成 • 12個のDBを作成するLambda関数(gtfs-create) • sankobus-feed-info • sankobus-agency • sankobus-agency-jp •

    sankobus-calendar • sankobus-calendar-dates • sankobus-office-jp • sankobus-routes • sankobus-routes-jp • sankobus-stop-times • sankobus-translations • sankobus-trips
  4. データの更新 • DBを更新するLambda関数(gtfs-update) • feed_info.txtからfeed_versionを取ってきて、DBの値と異なっていたら、更新する仕組み • データの⼤きいstops/stop_times/translations/tripsは1000件ずつ分けて保存 • 1回のLambdaの実⾏時間は15分まで、DynamoDBの書き込み速度(キャパシティ)も制限がある •

    15分で5000件くらい書き込める • 並列実⾏はDBのキャパシティを超えるため不可能(※お⾦をかければ制限を超えられる • APIの応答時間は29秒なので、それを超えるような処理を実⾏したい場合はStepFunctionsを⽤いる • stop_timesは70万件ほどあるので1⽇かかるw