Windows Azure Tables の Breaking Changes 2013/11

2013/11/29 以下の内容は正式な日本語訳が出ています Windows Azure テーブルにおける重大な(互換性のない)変更

Azure Storage Team より、Windows Azure Table のJSONサポート準備のため Table の response が一部変更されている旨アナウンスされました。基本的に、HTTP、AtomPubの規格内の変更で互換性を保てるように最大限の努力をしているということですが、自前のカスタムパーサーを書いている場合などは問題になるかもしれません。

Windows Azure Tables Breaking Changes (November 2013)から変更点を紹介します。

変更点

  1. 新しいリリースでは、AtomPub response は、XML要素の間に改行、空白がありません。
  2. AtomPub XML Responce内のXML element(title、idなど)は、順番が変更される場合があります。
  3. HTTP HeaderのContent-Typeに”type” placeholder が追加されました。例えば, query の response (point query以外) は、content type に charset と application/atom+xmlに、type=feedが追加されます変更前: Content-Type: application/atom+xml;charset=utf-8変更後: Content-Type: application/atom+xml;type=feed;charset=utf-8
  4. MIME type のセキュリティ リスクの削減のための新しいresponse headerX-Content-Type-Options: nosniffが返されます。参照:http://msdn.microsoft.com/en-us/library/ie/gg622941(v=vs.85).aspx

感想等

  • 手元のアカウントで確認してみたら既に上記の通りに変更されていました。事前に予告が欲しいです。
  • 改行、空白が無くなった件は、今までのは、「XMLが element毎に改行されインデントされてるようなフォーマットで人が読むわけではないのに転送データ量が増えてMOTTAINAI」と思ってたので妥当な変更な気がします。これは、普通のXML parsersを通していれば問題になることは無さそうですし。
  • XML element の順番の件は引っかかるとちょっと面倒ですが、元々AtomPubの仕様に沿ったものなので無茶な話ではないと思います。
  • AtomPub内のXML elementの順番に関しては、RFC 4287 The Atom Syndication Format 日本語訳が参考になります。feedの中のelementはどんな順番で出てきても良いことになっていますね。
  • HTTP ヘッダーの変更は、ここまでパースしていることがあまり無いような気がするので、「影響はあまり無いのかな」という気がします。

json対応に向けて着々と進んでいるのは、とても嬉しいです。