howdylikes

Google Developersってわかりづらいよね

Calendar Resource APIがリニューアル

公式Blogで発表されました。
Google Apps Developer Blog: Introducing the new Calendar Resource API

もともとGDATA APIのCalendar Resrouce APIが Directory APIに仲間入りしました。
ユーザーやグループがProvisioning APIからDirectory APIになったときと同様の流れです。

リソースの一覧でも出してみる

旧API

https://apps-apis.google.com/a/feeds/calendar/resource/2.0/howdylikes.jp/?alt=json
※比較用にjsonに変換
※一部を抜粋

 {
                "id": {
                    "$t": "https://apps-apis.google.com/a/feeds/calendar/resource/2.0/howdylikes.jp/79672726-120"
                },
                "updated": {
                    "$t": "2015-12-16T12:43:28.463Z"
                },
                "link": [
                    {
                        "rel": "self",
                        "type": "application/atom+xml",
                        "href": "https://apps-apis.google.com/a/feeds/calendar/resource/2.0/howdylikes.jp/79672726-120"
                    },
                    {
                        "rel": "edit",
                        "type": "application/atom+xml",
                        "href": "https://apps-apis.google.com/a/feeds/calendar/resource/2.0/howdylikes.jp/79672726-120"
                    }
                ],
                "apps$property": [
                    {
                        "name": "resourceDescription",
                        "value": "説明AAA"
                    },
                    {
                        "name": "resourceId",
                        "value": "79672726-120"
                    },
                    {
                        "name": "resourceCommonName",
                        "value": "リソース名AAA"
                    },
                    {
                        "name": "resourceEmail",
                        "value": "howdylikes.jp_37393637323732362d313230@resource.calendar.google.com"
                    },
                    {
                        "name": "resourceType",
                        "value": "リソース種類AAA"
                    }
                ]
            }

新API

https://www.googleapis.com/admin/directory/v1/customer/my_customer/resources/calendars
※一部を抜粋

        {
            "kind": "admin#directory#resources#calendars#CalendarResource",
            "etags": "\"iwpzoDgSq9BJw-XzORg0bILYPVc/mWUun8nlgra63ITZJ3rsL2SCVJw\"",
            "resourceId": "79672726-120",
            "resourceName": "リソース名AAA",
            "resourceType": "リソース種類AAA",
            "resourceDescription": "説明AAA",
            "resourceEmail": "howdylikes.jp_37393637323732362d313230@resource.calendar.google.com"
        }

あとがき

シンプルになってよいですが、接頭辞にresourceをつけているのは互換性?のためでしょうか、理解に苦しみます。
WebAPIとして美しくないです。普通にid,name,type,description,emailでいいはず。

旧APIはscopeにreadonlyがなかったため読み取りしかさせたくない場合でも全権限を与える必要がありましたが、 新APIはreadonlyが加わったためその問題も解決します。

@旧APIは2017年1月に廃止予定ですので移行が必須です。