先日のGoogle I/Oにて、Googleは新しいGmail APIを紹介した。Googleによれば、これは「Threads、Messages、Labels、Drafts、Historyへの自然なインターフェイスを使って、ユーザのインボックスに対する柔軟なRESTfulアクセスを開発者に提供すること」を目的とし、IMAPを超えるさまざまな利点を開発者にもたらすものだ。
当初誤解されていたようだが、Gmail APIの目的はIMAPプロトコルを殺すことではなく、Gmailアプリケーション開発を簡単にすることだ。Google自身が言っているように、「フル装備のメールクライアントアクセスのため、Gmail APIをIMAPの置き換えとして使うべきではない」
Googleのブログで詳しく述べられているように、新しいGmail APIはGmailのインボックスへのフルアクセスを提供するものではなく、以下に制限されている。
- Gmailからメッセージを読む
- メールメッセージを送る
- メッセージとスレッドに適用されたラベルを変更する
- 特定のメッセージおよびスレッドを検索する
新しいAPIはOAuth 2.0認証のもと、ユーザのメールボックスに対するRESTfulアクセスを提供し、threads、messages、labels、drafts、historyといったGmailデータ型でのCRUD操作をサポートする。このAPIはユーザのメールボックスに対するきめ細かなコントロールを提供している。したがって、ユーザのためにメールを送信するだけで、メールを読む必要がないようなアプリの場合には、メール送信のみoAuth経由で認証されていればよい。これはGmail APIによって得られるメリットだ。Gmail Extensibility TeamのEric DeFriez氏がGoogleのブログで言及しているように、IMAPの場合には、ユーザの全メッセージに対する全操作へのアクセスが必要になる。
DeFriez氏は続けて、Gmail APIの別のメリットとして、インボックス変更履歴を問い合わせできる履歴機能を挙げている。それは「どんな変更があったかを解明する考古学を行う必要を避け」、インボックスの同期を保つのをはるかに簡単にする。
だが、新しいAPIの大きなメリットはスピードだ。DeFriez氏によると「私たちのテストとプレリリースした開発者からのフィードバックの結果、Webアプリケーションのユースケースにおいて、新しいGmail APIはIMAPよりも劇的に性能改善しているようです」
GoogleはGmail APIのためのクライアントライブラリを、Java、JavaScript、.NET、Python、Objective-C、PHPなど複数の言語向けに提供している。まだ初期段階だが、Go、Node.js、Ruby向けのクライアントライブラリも利用可能だ。
クライアントライブラリに加えて、GoogleはJavaとPython用のクイックスタートガイドも提供している。