2011年10月12日水曜日

Google App Engine Go SDK1.5.5の変更点

Google App Engine Go SDK 1.5.5がリリースされました。

1.5.4からの変更点を確認した所、たくさんの変更がありました。
したがって、1.5.4で動作していたプログラムが1.5.5ではコンパイルエラーになる可能性が高いです。(データストアを使っていたら、ほぼNGでしょう)

わかり次第、変更点を追記していく予定です。

変更点は以下のポイントです。

  1. app.yamlに指定するapi_versionは"3"を指定する。(ローカルサーバが動きません)
  2. Cross Multiple Group Transactionの追加により、datastore.RunInTransaction()の引数にTransactionOptions構造体の引数が必要。メンバ変数XGにfalseを設定するとSingle Transactionとなる。
  3. datastore.NewKeyにappengine.Contextの引数が追加された。
  4. datastore.NewIncompleteKeyも同じくappengine.Contextの引数が追加された。
  5. datastore.NewIncompleteKeyにも親キーを指定するKey引数が追加された。
  6. http.ResponseWriterのHeaderが初期値が"text/plain"になっているので、w.Header().set("Content-Type", "text/html")を入れる必要がある。※ただし、w.Fprintf()で文字列を出力した時の挙動
  7. templateパッケージが変更されている。(詳細は、http://golang.org/pkg/template/#Template.Parse参照)
  8. gofmt、gofix、godocコマンドが同梱されるようになった。(1.5.4以前は無かった)※gofixコマンドはtemplateパッケージの変更には対応していない(?)
2011.10.13:
  • 8を追記
2011.10.15:
  • gofixコマンドのtemplateパッケージの変化に対応していない事を追記
2011.10.18:

  • datastore.RunInTransactionのTransactionOptions構造体の説明を修正