デベロッパー ガイドの概要
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
警告: このページは、Google の古い API である Google Data API を対象としています。Google Data API ディレクトリに記載されている API のみを対象としており、その多くは新しい API に置き換えられています。特定の新しい API については、その新しい API のドキュメントをご覧ください。新しい API を使用してリクエストを承認する方法については、Google アカウントの認証と承認をご覧ください。
Google の使命は世界中の情報を整理し、世界中の人々がアクセスできて使えるようにすることです。これには、ウェブブラウザ以外のコンテキストで情報にアクセスし、Google 以外のサービスからアクセス可能にすることも含まれます。
Google Data Protocol は、エンドユーザーが Google の各種サービスに保存されているデータにアクセスして更新できる新しいアプリケーションを作成するための安全な手段です。外部デベロッパーは Google Data Protocol を直接使用するか、クライアント ライブラリで提供される任意のプログラミング言語を使用できます。
対象者
このドキュメントは、Google データ プロトコルについて理解したいと考えている方を対象としています。言語固有のクライアント ライブラリを使用するコードを記述するだけであっても、クライアント ライブラリ抽象化レイヤの下で何が起こっているのかを把握したい場合があります。
特定の API に関するデベロッパー ガイドについては、Google Data Protocol API ディレクトリをご覧ください。
任意のプログラミング言語で API にアクセスしたい場合は、クライアント ライブラリのダウンロード ページにアクセスします。
背景
カレンダーやスプレッドシートなどのさまざまな Google サービスは、Google データ プロトコルに基づいた API を提供しています。デベロッパーはこれらの API を使用して、エンドユーザーが Google サービスに保存されているデータにアクセスして操作するための新しい方法を提供するクライアント アプリケーションを作成できます。
注: API を提供する Google サービスは、これらに関連するドキュメントでは「サービス」と呼ばれることもあります。
Google Data Protocol を直接使用するコードを記述すると、GET
や POST
などの HTTP リクエストを使用して API にアクセスします。こうしたリクエストでは、Google サービスに保存されたデータが、データフィードの形式でネットワーク上で送受信されます。データフィードは、データを含む単純なリストです。これまで、メインフィードの形式は AtomPub XML でしたが、現在は JSON(JavaScript Object Notation)も代替形式として利用可能です。
HTTP リクエストを直接行うコードを記述しない場合は、用意されているクライアント ライブラリ セットで利用可能なプログラミング言語のいずれかを使用してクライアント アプリケーションをプログラムできます。その場合、HTTP リクエストの詳細がクライアント ライブラリで処理されます。ここでは、クライアント ライブラリで提供される言語固有のメソッドとクラスを使用して、より概念的なレベルでコードを記述します。
使用している API または API バージョンで対応している具体的な言語の詳細については、各プロダクトのドキュメントをご覧ください。
プロトコルのバージョン
プロトコル バージョン 2.0 とプロトコル バージョン 1.0
Google Data Protocol の最初のバージョンは、Atom Publishing Protocol の最終決定前に開発されました。Google Data Protocol の 2 番目のバージョンは AtomPub RFC 5023 標準に完全に対応しています。
Google Data Protocol バージョン 2.0 では、次の機能もサポートされています。
- HTTP ETag。クライアント アプリケーションで HTTP キャッシュをより有効に活用するためのウェブ標準です。プロトコル v2.0 をサポートするクライアント ライブラリに含まれるサービスは、ETag を自動的に処理します。
- 部分レスポンスと部分更新(試験運用版)。データを転送する際のリクエスト量を減らす機能。実際に必要な情報のみをリクエストするか、実際に変更が必要なデータのみを含む更新データを送信することで、ネットワーク、CPU、メモリのリソースをより効率的に使用できます。現在、部分レスポンスと部分更新は一部のプロダクトでのみ利用できます。ご利用の API でサポートされているかどうかを確認するには、プロダクト固有のドキュメントをご覧ください。
アプリケーションを更新する
使用している API が最新バージョンのプロトコルに基づいて構築されている場合、Protocol v2.0 の機能がドキュメントに含まれています。一般的には、クライアント アプリケーションは API で利用できる最新バージョンにアップグレードすることをおすすめします。
クライアント ライブラリ ベースのクライアントの更新
Java クライアント ライブラリや .NET クライアント ライブラリなどのクライアント ライブラリをクライアント アプリケーションで使用している場合は、Protocol v2.0 の機能をサポートするバージョンの API が含まれている可能性があります。詳しくは、以下の Google サービスの API ドキュメントをご参照ください。
- Google Data Protocol v2.0 の機能をサポートする API バージョンがあります。
- 使用しているクライアント ライブラリも、その API バージョンをサポートしています。
クライアント ライブラリがサポートされていて、既存のアプリケーションを更新する場合は、クライアント ライブラリの最新バージョンをダウンロードして使用します。すべてのコードは引き続き機能し、クライアント ライブラリは内部で Protocol v2.0 の変更を行います。
未加工の HTTP クライアントの更新
Google Data Protocol を直接使用してクライアント アプリケーションを作成した場合は、次の変更を行う必要があります。
- デフォルト以外のバージョンのリクエスト。送信する HTTP リクエストに HTTP バージョンのヘッダー(
GData-Version: X.0
)を追加します。X
は、Google Data Protocol v2.0 の機能をサポートする API のバージョンです。または、すべてのリクエストの URL にクエリ パラメータ(v=X.0
)を追加します。ここで、X
は正しいバージョンの API です。これより後のバージョンを指定しない場合、デフォルトで、サポートされている最も古いバージョンの API にリクエストが送信されます。
- オプティミスティック同時実行。最適化スコアに基づく楽観的同時実行をサポートするバージョンの API を使用していた場合、ETag を使用するには更新とコードの削除が必要になることがあります。詳しくは、Google Data Protocol リファレンス ドキュメントの ETags、クライアント アプリケーションが使用する Service のプロトコル デベロッパー ガイドの「更新と削除」をご覧ください。
- URI の自己編集、編集。クライアントがフィードやエントリの URI や編集 URI をトラッキングしている場合、それらの URI が変更されている可能性があります。新しい URI を取得するには、古い URI を使用してアイテムを再リクエストしますが、リクエストをバージョン X.0 リクエストとしてマークします。X は Google Data Protocol v2.0 の機能をサポートする API のバージョンです。サーバーがエントリの新しい表現を返します。これには、古い URI の代わりに保存できます。
- 名前空間 URI。クライアントが Google Data Protocol API の名前空間 URI をローカルに保存している場合、またはそれらをハードコードしている場合は、更新する必要があります。
- AtomPub 名前空間(接頭辞
app
)を http://purl.org/atom/app
から http://www.w3.org/2007/app
に変更しました。
- OpenSearch 名前空間(接頭辞
openSearch
)を http://a9.com/-/spec/opensearchrss/1.0/
から http://a9.com/-/spec/opensearch/1.1/
に変更しました。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2023-03-01 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2023-03-01 UTC。"],[[["\u003cp\u003eThe Google Data Protocol enables external developers to build applications that access and update data stored in various Google products.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can use the protocol directly via HTTP requests or leverage client libraries for supported programming languages.\u003c/p\u003e\n"],["\u003cp\u003eGoogle Data Protocol v2.0, aligned with AtomPub RFC 5023, introduces features like HTTP ETags, Partial Response, and Partial Update for enhanced efficiency.\u003c/p\u003e\n"],["\u003cp\u003eUpgrading to Protocol v2.0 may require updating client applications to handle changes related to version requests, optimistic concurrency, URIs, and namespaces.\u003c/p\u003e\n"],["\u003cp\u003eRefer to specific product documentation and the Google Data APIs directory for API details and compatibility.\u003c/p\u003e\n"]]],[],null,["# Developer's Guide Overview\n\n**Warning** : This page is about Google's older APIs, the Google Data APIs; it's relevant only to the APIs that are listed in the [Google Data APIs directory](/gdata/docs/directory), many of which have been replaced with newer APIs. For information about a specific new API, see the new API's documentation. For information about authorizing requests with a newer API, see [Google Accounts Authentication and Authorization](/accounts).\n\nGoogle's mission is to organize the world's information and make it universally accessible and useful. This includes making information accessible in contexts other than a web browser and accessible to services outside of Google.\n\nThe Google Data Protocol provides a secure means for external developers to write new applications that let end users access and update the data stored by many Google products. External developers can use the Google Data Protocol directly, or they can use any of the supported programming languages provided by the client libraries. \n\nAudience\n========\n\nThis set of documents is intended for anyone who wants to understand Google Data Protocol. Even if you just want to write code that uses the language-specific [client libraries](/gdata/docs/client-libraries), this document set can be helpful if you want to understand what's going on beneath the client-library abstraction layer.\n\nIf you're looking for the Developer's Guide for a specific API, visit the Google Data Protocol [API Directory](/gdata/docs/directory).\n\nIf you want to access an API in your favorite programming language, visit the [Client Libraries](/gdata/docs/client-libraries) download page.\n\nBackground\n==========\n\nA number of Google products, such as Calendar and Spreadsheets, provide APIs that are based on the Google Data Protocol. You, the developer, can use these APIs to write client applications that give end users new ways to access and manipulate the data they store in those Google products.\n\n**Note:** Google products that provide APIs are sometimes referred to as *services* in these and other related documents.\n\nIf you write code that uses the Google Data Protocol directly, it accesses the API using HTTP requests like `GET` or `POST`. With these requests, data stored by the Google product is transferred back and forth over the wire in the form of data feeds. The data feeds are simply structured lists that contain the data. Historically, the primary feed format has been AtomPub XML, but now JSON, or JavaScript Object Notation, is also available as an [alternate format](/gdata/docs/json).\n\nIf you prefer not to write code that makes HTTP requests directly, you can instead program your client application using one of the programming languages available in the set of client libraries provided. When you do this, the details of the HTTP requests are handled by the client library; you write your code at a more conceptual level using the language-specific methods and classes provided by the client library.\n\nRefer to the product-specific documentation for more information about the particular languages available for the API, or API version, you are using.\n\nVersions of the protocol\n========================\n\n### Protocol Version 2.0 vs. Protocol Version 1.0\n\nThe first version of the Google Data Protocol was developed before the Atom Publishing Protocol was finalized. The second version of the Google Data Protocol is fully compliant with the AtomPub [RFC 5023](http://www.rfc-editor.org/rfc/rfc5023.txt) standard.\n\nThe Google Data Protocol Version 2.0 also includes support for:\n\n- [HTTP ETags](/gdata/docs/2.0/reference#ResourceVersioning). A web standard that helps your client applications make better use of HTTP caching. The services included in the client libraries that support Protocol v2.0 handle ETags automatically.\n- [Partial Response](/gdata/docs/2.0/reference#PartialResponse) and [Partial Update](/gdata/docs/2.0/reference#PartialUpdate) (Experimental). Features that let you make requests that transfer less data. By requesting only the information that you actually need, or by sending updates that include only the data that you actually want to change, your client application can be much more efficient in its use of network, CPU, and memory resources. Currently, partial response and partial update are available only for some products; see the product-specific documentation to find out if your API supports it.\n\n### Updating your application\n\nIf the API you are using was built upon the latest version of the protocol, then the Protocol v2.0 functionality is included in its documentation. In general, we recommend that you upgrade your client application to the latest version available for your API.\n\n#### Updating a client-library-based client\n\nIf your client application uses a client library, such as the Java client library or the .NET client library, it may contain a version of the API that supports Protocol v2.0 features. To find out, refer to the API documentation for the Google product you are using to find out if both of the following are true:\n\n- There is an API version that supports Google Data Protocol v2.0 features.\n- The client library you are using also supports that API version.\n\nIf the client library supports it and you want to update your existing application, just download and use the latest version of the client library. All of your code still works, and the client library takes care of the Protocol v2.0 changes under the hood.\n\n#### Updating a raw HTTP client\n\nIf you wrote your client application using the Google Data Protocol directly, you need to make these changes:\n\n- **Non-default version requests.** Add an HTTP version header (`GData-Version: `*X*`.0`) to every HTTP request you send, where *`X`* is the version of the API that supports Google Data Protocol v2.0 features. Alternatively, add a query parameter (`v=`*X*`.0`) to the URL of every request, where *`X`* is, again, the correct version of the API. If you do not specify a later version, your requests are sent to the earliest supported version of the API by default.\n- **Optimistic concurrency.** If you were using a version of an API that supported optimistic concurrency, you may need to change your update and delete code to use ETags. For more information, read the [ETags section](/gdata/docs/2.0/reference#ResourceVersioning) of the Google Data Protocol reference documentation, and read the Update and Delete sections of the Protocol developer's guide for the service your client application is using.\n- **Self or edit URIs.** If your client keeps track of self or edit URIs for feeds or entries, note that those URIs may have changed. To get the new URI, re-request the item using the old URI, but mark the request as a version *X* .0 request, where *X* is the version of the API that supports Google Data Protocol v2.0 features. The server returns the new representation of the entry, including the new URIs, which you can store in place of the old ones.\n- **Namespace URIs.** If your client stores Google Data Protocol API namespace URIs locally, or has them hard-coded, you'll need to update them:\n - The AtomPub namespace (prefix `app`) has been changed from `http://purl.org/atom/app` to `http://www.w3.org/2007/app`.\n - The OpenSearch namespace (prefix `openSearch`) has been changed from `http://a9.com/-/spec/opensearchrss/1.0/` to `http://a9.com/-/spec/opensearch/1.1/`."]]