LoginSignup
2
2

More than 3 years have passed since last update.

兵庫県のCOVID19感染者状況のGraphQL APIを公開してみた。(その2)

Last updated at Posted at 2020-03-21

宣伝

兵庫県のコロナウイルス特設サイトが公開中
https://stop-covid19-hyogo.org/
僕の公開しているGraphQL APIとは今のところ別働で動いていますが
かなり参考にさせて頂いておりますのでご紹介しておきます。

hyogo.covid19-api

GraphQLプレイグラウンド

api内訳

readInfectedPeoples

感染者情報一覧取得クエリ
https://web.pref.hyogo.lg.jp/kk03/corona_kanjyajyokyo.html
上記のページに掲載されている感染者情報のエクセルファイルを30分おきに
コンテナ内にダウンロード。
そのファイルを読み込みPostgreSQLにデータを挿入します。
gqlgenで立てたGraphQLサーバーでgormを使ってPostgreSQLからデータを取得し配信しています。

GraphQLのフィールドとエクセルファイルとの関連
エクセルの「認定こども園」以降のデータはcluster_placesというサブコレクションクエリで読み込めます。

番号 確認日 年代 性別 管轄 居住地 職業 発症日 渡航歴 備考欄
no confirmed_date age_group sex jurisdiction residence occupation onset_date travel_history remarks

取得例
スクリーンショット 2020-03-21 11.45.05.png

全フィールド取得クエリ例
uuidによるidフィールドもありますがプレイグラウンドで試す際は長すぎて見づらくなるので
ここではidを含めないクエリを貼っておきます。

query{
  readInfectedPeoples{
    no
    confirmed_date
    age_group
    sex
    jurisdiction
    residence
    occupation
    onset_date
    travel_history
    remarks
    cluster_places{
      no
      label
      is_relation
    }
  }
}

readExamOverviews

https://web.pref.hyogo.lg.jp/kk03/corona_hasseijyokyo.html
上記のページ、「発生状況」すぐ下のpdfファイルを30分おきに
コンテナ内にダウンロード。
そのファイルを読み込みPostgreSQLにデータを挿入します。
gqlgenで立てたGraphQLサーバーでgormを使ってPostgreSQLからデータを取得し配信しています。

関連しているデータ
スクリーンショット 2020-03-21 12.02.12.png

取得例
スクリーンショット 2020-03-21 12.42.04.png

全フィールド取得クエリ例

query{
  readExamOverviews{
    no
    label
    count
  }
}

readExamDetails

https://web.pref.hyogo.lg.jp/kf16/singatakoronakensa.html
上記のバーチャート下部のテーブルタグを30分おきにスクレイピング
抽出したデータをPostgreSQLにデータを挿入します。
gqlgenで立てたGraphQLサーバーでgormを使ってPostgreSQLからデータを取得し配信しています。

関連しているデータ
スクリーンショット 2020-03-21 12.59.27.png

取得例
スクリーンショット 2020-03-21 13.01.24.png

全フィールド取得クエリ例

query{
  readExamDetails{
    no
    date
    exam_count
    positive_count
  }
}

readPCROverviews

readExamOverviewsの改善版
2020/3/13までのhttps://web.pref.hyogo.lg.jp/kk03/corona_hasseijyokyo.html
のpdf情報を蓄積
ただし、pdfは毎日差し替えられるので
https://web.pref.hyogo.lg.jp/kf16/singatakoronakensa.html の累積情報と
https://covid-hyogo.now.sh から一部データを拝借しております。
(手入力www)
2020/3/23よりデータ蓄積開始しています。
dateフィールドの日付は兵庫県サイトに掲載されているルールに則って前日の日付を
ISO8601(RFC3339)形式で保存しています。
ちなみに、サイトのデータが更新されるまでは前日公表分のデータと同様のデータを返します。

関連しているデータ
スクリーンショット 2020-03-21 12.02.12.png

取得例
スクリーンショット 2020-03-23 10.44.54.png

全フィールド取得クエリ例

query{
  readPCROverviews{
  id
  date
  pcr_total
  pcr_positive_count
  hospitalized_count
  not_serious_count
  serious_count
  death_count
  discharge_count
}
}

まとめ

2020/3/23追記
そろそろ、GraphQLのサブスクリプションにトライしてみようかと
あと、運用回りでいよいよ、CIに興味が出てきた。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2