App Engine APIs が使えなくなっているので、代わりにGCPのPython用のライブラリを使う。(例えば、Datastoreの読み書きにndbは使えない。)
- Goal
GAE(Google App Engine) + python3.7ランタイム上にREST API(メソッドはPOST)を作成する。
APIが呼び出されたら、GCP(Google Cloud Platform)のDatastoreに新規Entity(レコード)を追加する。 - case
名前、点数、教科名をjsonでPOSTしたら、GCPのDatastoreに書き込みして、Keyを返信する。 - How
1. 開発前準備
1)開発環境に、google-cloud-datastoreをインストール
2)GOOGLE_APPLICATION_CREDENTIALS
環境変数を設定
あくまで、ローカルでテストするために必要。
以下コマンドを打つと、betaコンポーネントのダウンロードを聞かれる。
「Y」を入力すると、ダウンロードされて環境変数の設定までしてくれる。
$ gcloud beta auth application-default login
2. requirements.txt の中身。google-cloud-datastoreも追加すること。
3. main.py の中身。
- Result --- curlのサンプルと結果
Toshiのhistoryが67点
$ curl -i -H "Content-Type: application/json" -X POST -d '{"name":"toshi","points":67,"subject":"history"}' https://.appspot.com/addtest HTTP/2 201content-type: application/jsonx-cloud-trace-context: 4140694e3538666bb96627febc6130e4;o=1date: Sun, 14 Oct 2018 14:08:21 GMTserver: Google Frontendcontent-length: 35alt-svc: quic=":443"; ma=2592000; v="44,43,39,35"