OpenSocial v0.8.1 が公開
by えーじ / Eiji Kitamura
OpenSocial v0.8.1 仕様が公開されました。
- OpenSocial Specification – Implementation Version 0.8.1(翻訳)
- OpenSocial RESTful Protocol(翻訳)
- OpenSocial RPC Protocol(未翻訳)
※ 翻訳については一部ベータ版からの修正内容が反映されていない箇所があります。誤り を見つけた際はご指摘ください。
リリースノートは下記の通り:
OpenSocial リリースノート #
OpenSocial の仕様変更点
- サーバーサイド API の変更 サーバー間通信機能に、よりシンプルなバッチ処理を可 能とする JSON RPC プロトコルが追加されました。名前の一貫性を保つため、RESTful API は今後 RESTful プロトコルと呼ばれます。
- OpenSocial ID で許可する文字に
-,_,.を追加 OpenSocial ID は従来の 英数字に加え、-,_, および.を含むことができます。 - Portable Contacts 仕様にアライン
互換性のない変更点
- RESTful プロトコルの非互換性 RESTful プロトコルから多くのクエリやレスポン スフィールドが名称変更/削除されました。RESTful プロトコルの変更点全てを下記に 示します。
RESTful プロトコルの変更点
- PortableContacts との互換性 RESTful プロトコルを実装することで、コンテナは PortableContacts 仕様と技術的互換性を持つこと になります。下記の変更点はこの互換性実現のために実装されました。
- 新しいレスポンス型
format=xmlリクエストがformat=xmlパラメータをサ ポートするようになりました。People のリクエストはformat=xmlかformat=jsonで行われなければなりません。 - コンテナはランダムアクセスなページングを実装しなければならない コンテナは
startIndexとitemsPerPageパラメータを使ったページングの実装が必須となり ました。 - コレクションのフィールドから
rel=nextリンクが廃止 このパラメータは JSON コ レクションレスポンスから削除されました - コレクションのフィールドから author が廃止 このパラメータは JSON コレクショ ンレスポンスから削除されました
- コンテナは全てのコンタクトを一度に返せなければならない コンテナは一度のリ クエストで全てのコンタクトを返すことができなければなりませんが、パフォーマンス 上の理由から返すコンタクトの数に上限を設けることができます。
itemsPerPageのデフォルト値itemsPerPageパラメータがリクエストで指定 されていない場合のデフォルト値はコンテナに依存します。- ソートパラメータの変更点
orderByパラメータは sortBy に名称変更されまし た。また、sortOrderパラメータが追加され、ascending(昇順) とdescending(降順) を与えることができます。デフォルトはascendingです。 updatedSinceパラメータの追加 クエリで、指定された期間内に更新されたエン トリのみを返すよう指定することができます。- ソートおよびフィルタリングが行われたかをレスポンスに表示 ソートやフィルタ
リングはコンテナにとってコストが高いため、実際にリクエストと同じ内容のフィルタ
リングが行われたかを示す、トップレベルのレスポンスフィールド
filtered,sorted,updatedSinceがレスポンスに含まれるようになりました - 削除された
Personオブジェクトのリクエストが可能に 新しく追加された@deletedセレクタとupdatedSinceパラメータを利用することで、指定された日 時以降に削除されたコンタクトの取得が可能になりました。 Personレスポンスは最低でもidとnameフィールドを含まなければならな い コンテナはnameおよびidフィールドをPersonデータに含まなけれ ばなりません。profileUrlは URL でもなければならないPersonのprofileUrlフィー ルドで返される値はtypeがprofileのエントリのurlsフィールドでも返さ れなければなりません。Personにphotosフィールド追加Personにurl,type,primaryサブフィールドを持ったエントリのリストを含む、photosフィールドが追加されま した。PersonオブジェクトでthumbnailUrlフィールドが返された場合、このurlはtypeがthumbnailであるエントリのphotosフィールドにも存在し なければなりません。Personにimsフィールド追加Personにvalue,type,primaryの サブフィールドを持ったimsフィールドが追加されました。type値としてよく使 用されるaim,gtalk,icq,xmpp,msn,skype,qq,yahooが定義され ていますが、新しいtypeを定義することもできます。Personにaccountsフィールド追加Personにその人がアカウントを所有 する他のサービスを表すaccountsフィールドが追加されました。このフィールド はdomain,userid,username,primaryサブフィールドを持ったエントリのリ ストを含みます。Personの複数フィールドにprimaryサブフィールド追加Personのemails,urls,ims,phoneNumbers,addresses,organizations,photosフィールドに、リスト中どのフィールドが主たるものか (存在する場合のみ) を示すprimaryサブフィールドが追加されました。jobsおよびschoolsの複数フィールドをorganizationsに統合jobsお よびschoolsのエントリはorganizationsという名前のOrganization構造の 配列にまとめられました。Organization構造はjob、schoolを正規値とするtypeサブフィールドで拡張されます。Personの複数フィールドをvalueフィールドに標準化Personの複数 フィールドで主となるテキスト値はvalueというサブフィールドに保存されるべき です。これはemails.address,phoneNumbers.number,urls.addressおよびす べての{Enum}.keyフィールドのインスタンスを{Enum}.valueに名称変更するこ とが必要となります。addresses,accounts,organizationsフィールドは複雑 なため、valueフィールドのコンセプトが存在しません。ソートやフィルタリングを 行うため、これらのフィールドの "主たる" サブフィールドに該当する部分は、addresses.formatted,accounts.domain,organizations.nameとなります。Persongenderフィールドは文字列にPersonではgenderを文字列 フィールドとして扱い、maleおよびfemaleを正規値とします。AddressesからextendedAddressまたはpoBoxサブフィールドが廃止streetAddressサブフィールドに完全な (複数行の場合もある) 住所を保存すること ができるようになったため、AddressサブフィールドのextendedAddressおよびpoBoxが廃止されました。unstructuredAddressをformattedに変更AddressのunstructuredAddressサブフィールドはformattedに名称変更されました。dateOfBirthをbirthdayに変更PersonのdateOfBirthフィールド はbirthdayに名称変更されました。- timeZone を utcOffset に変更
PersonのtimeZoneフィールドはutcOffsetに名称変更されました。 nicknameの定義Personのnicknameフィールドは "現実世界でこの人 物を指すくだけた方法" と定義されました。- **
Personフィールドのデフォルトセット**Personリクエストでクエリパラ メータfieldsがない場合、JS API のデフォルトと一致させるため、最小限必要と されるデフォルトセットとしてid,name,thumbnailUrlが定義されました。 - supportedFields のクエリ RESTful プロトコルにコンテナがサポートする
PersonおよびActivityフィールドをリストで返す/people/@supportedFields および/activities/@supportedFieldsというエンドポイントが定義されました。 indexByの廃止indexByクエリパラメータは廃止されました。- **
Activity.titleフィールドは HTML 文字列に **Activityタイトルフィールド は複雑なデータオブジェクトではなく、HTML マークアップを含む文字列として扱われ るようになります。 unstructuredをformattedに変更 名前フィールドのunstructuredはformattedに変更されました。displayNameフィールドを追加Personフィールドのトップレベルフールド としてdisplayNameが追加されました。
RPC プロトコルの変更点
- RPC プロトコルが登場 バッチ処理や複雑なサーバー間処理を簡易化するためのオ プションとして、新しく RPC プロトコルが登場しました。
opensocial.* JavaScript の変更点
- 新しい
opensocial.IdSpec.GroupIdenumIdSpecオブジェクトを構成するた め、opensocial.IdSpec.GroupId.FRIENDSまたはopensocial.IdSpec.GroupId.SELFを使用することができます。 supportsFieldのレスポンスを定義opensocial.Environment.supportsField()の戻り値として、コンテナがフィールド をサポートする場合はtrue、そうでない場合はfalseを返すことが定義されまし た。
gadgets.* JavaScript の変更点
gadgets.*JavaScript API に変更点はありません。
Gadgets XML の変更点
<Preload>要素で OAuth をサポート<Preload>要素のauthz属性でoauth値がサポートされるようになりました。authzがoauthの場合、oauth_service_name,oauth_token_name,oauth_request_token,oauth_request_token_secret属性が取得されます。これらの属性はgadgets.io.makeRequestパラメータに一致するものと同様の意味とデフォルト値を 持ちます。
Subscribe via RSS