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
となります。Person
gender
フィールドは文字列に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.GroupId
enumIdSpec
オブジェクトを構成するた め、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