diff --git a/README.md b/README.md index cbac53b05..5f7514c09 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,11 @@ # Google APIs -This repository contains the original interface definitions for a -small (but growing) set of Google APIs built on a next-generation API -serving stack. Reading the original interface definitions can provide -a better understanding of these APIs and help you to utilize them more -efficiently. You can also use these interface definitions with open -source tools to generate client libraries or other artifacts such as -documentation. +This repository contains the original interface definitions of public +Google APIs that support both REST and gRPC protocols. Reading the +original interface definitions can provide a better understanding of +Google APIs and help you to utilize them more efficiently. You can also +use these definitions with open source tools to generate client +libraries, documentation, and other artifacts. For more details on all Google APIs and developer tools, see the [Google Developers](https://developers.google.com/products/) site. @@ -15,21 +14,20 @@ Developers](https://developers.google.com/products/) site. Google APIs are typically deployed as API services that are hosted under different DNS names. One API service may implement multiple APIs -and multiple versions of the same API, and each API contains a -collection of API methods. - -By default, Google APIs use [Protocol -Buffers](https://github.com/google/protobuf) language version 3 - aka -proto3 - as their Interface Definition Language (IDL) to define the -API interface and the structure of the payload messages. The same -interface definition is used for both REST and RPC versions of the +and multiple versions of the same API. + +Google APIs use [Protocol Buffers](https://github.com/google/protobuf) +version 3 (proto3) as their Interface Definition Language (IDL) to +define the API interface and the structure of the payload messages. The +same interface definition is used for both REST and RPC versions of the API, which can be accessed over different wire protocols. There are two ways of accessing Google APIs: -1. JSON over HTTP/1.1: You can access Google APIs directly using JSON -over HTTP/1.1, using Google-provided API or third-party API client -libraries. +1. JSON over HTTP: You can access Google APIs directly using JSON +over HTTP, using +[Google API client libraries](https://developers.google.com/api-client-libraries) +or third-party API client libraries. 2. Protocol Buffers over gRPC: You can access Google APIs published in this repository through [GRPC](https://github.com/grpc), which is @@ -39,8 +37,8 @@ streaming. ## Discussions -You may use the [Google APIs](https://groups.google.com/group/googleapis) -mailing list for general discussions about this repository. +Please use GitHub Issues to discuss bugs and features related to this +repository. ## Repository Structure @@ -53,19 +51,23 @@ client libraries have idiomatic namespaces in most programming languages. Alongside the API directories live the configuration files for the [GAPIC toolkit](https://github.com/googleapis/toolkit). -**NOTE:** the major version of an API is used to indicate breaking +**NOTE:** The major version of an API is used to indicate breaking change to the API. ## Generate gRPC Source Code To generate gRPC source code for Google APIs in this repository, you first need to install both Protocol Buffers and gRPC on your local -machine. Then you can run `make all` in this directory to generate -the code. +machine, then you can run `make LANGUAGE=xxx all` to generate the +source code. You need to integrated the generated source code into +your application build system. + +**NOTE:** The Makefile is only intended to generate source code for the +entire repository. It is not for generating linkable client library +for a specific API. Please see other repositories under +https://github.com/googleapis for generating linkable client libraries. ### Go gRPC Source Code It is difficult to generate Go gRPC source code from this repository, since Go has different directory structure. Please use [this repository](https://github.com/google/go-genproto) instead. - -**NOTE:** The Makefile needs more improvements.