Posted filed under Ruby on Rails.

Photo by JosephH

 先日の「レスポンスコードでステータスを判断するとFreeSpotとかで問題にならない?」で、たけまるさんから、詳しいお返事をいただきました。

 AtomPPは全然わからないので、詳しい方に返事をいただけて光栄です。
たけまるさんのhikiは、GDataを調べてる時に、Google経由で何度も参考にさせていただいてます。
 残念ながらWebDB+Pressは日本を離れるときに全部処分してきてしまいました。

 やはりAtomPPでは、エラーの規定はないのですね。ほかのRFCで拡張されているのかなと思ったのですが、それもないのですね。
 エラーの内容を返すときに、Atom Entry形式を使うか、errorタグで返すかが迷うところです。ブログのAPIを見ているとerrorタグで返しているケースが多いように感じます。

FreeSpotなんかで、アクセスすると初回アクセス時にどのページにアクセ
スしてもログインページなどに飛ばされるようにってるけど、そういう環
境では、APIにPOSTして200が帰ってきても、実は届いてなかったという事
が考えられる。

FreeSpot を使ってないので状況が正確にわからないのですが,AtomPub の
話ではなくて,回線レベルの認証のことですよね? AtomPub の文脈で書か
れてますが,他の API を採用しても同じ問題があるような気がします.

 すみません。そうですね。別のAPIでも変わらないです。
 レスポンスコードだけでなく、bodyの方でも規定があるAPIなら、正しいXMLが返らなかったら接続エラーとして扱う方法があるのにな、と思っていました。

 POSTのレスポンスコードの件も、ありがとうございます。AtomPPの仕様書をちゃんと読んでおきます。AtomとAtomPPを合わせると結構な量になるんですよね。

 GDataとの差異は認証以外にもあるんですね。StickaのAPIでは、バージョン管理があるので、GDataの方が強そうですね。

 こう考えると、私の用途には、AtomPPで組んで、バージョン管理というか衝突の部分だけ、GDataを参考にするというのが良さそうです。

2 Responses to “AtomPPのエラー処理”

  1. k.daiba

    本来「FreeSpot」はどういうレスポンスコードを返すようにしたら,アプリケーションを作っている人に取って便利なんでしょう.確かに200を返すのは本来繋ぎたいサーバと区別がつかないですが,407を返すようにすれば解決するでしょうか

  2. masuidrive

    407など通常のAtomのアクセスで出ないはずのレスポンスコードが返るのであれば、それを処理することで解決出来ると思います。

    一番良いのはhttpsを使うことなんだとは思いますが。