Этот репозиторий содержит исходные определения интерфейсов общедоступных API Google, которые поддерживают протоколы REST и gRPC. Чтение исходных определений интерфейса может обеспечить лучшее понимание API Google и помочь вам использовать их более эффективно. Вы также можете использовать эти определения с инструментами с открытым исходным кодом для создания клиентских библиотек, документации и других артефактов.
Рекомендуемый способ создания клиентских библиотек API — через Bazel >= 4.2.2.
Сначала установите Базель.
Чтобы собрать все библиотеки:
bazel build //...
Чтобы протестировать все библиотеки:
bazel test //...
Чтобы создать одну библиотеку на всех языках:
bazel build //google/example/library/v1/...
Чтобы собрать пакет Java для одной библиотеки:
bazel build //google/example/library/v1:google-cloud-example-library-v1-java
Пакеты Bazel существуют во всех библиотеках для Java, Go, Python, Ruby, Node.js, PHP и C#.
API Google обычно развертываются как службы API, размещенные под разными DNS-именами. Одна служба API может реализовывать несколько API и несколько версий одного и того же API.
API Google используют протокольные буферы версии 3 (proto3) в качестве языка определения интерфейса (IDL) для определения интерфейса API и структуры сообщений полезной нагрузки. Одно и то же определение интерфейса используется как для версий API REST, так и для RPC, доступ к которым можно получить по разным проводным протоколам.
Существует несколько способов доступа к API Google:
JSON через HTTP: вы можете получить доступ ко всем API Google напрямую, используя JSON через HTTP, используя клиентскую библиотеку Google API или сторонние клиентские библиотеки API.
Буферы протоколов через gRPC. Вы можете получить доступ к API Google, опубликованным в этом репозитории, через GRPC, который представляет собой высокопроизводительный двоичный протокол RPC через HTTP/2. Он предлагает множество полезных функций, включая мультиплексирование запросов/ответов и полнодуплексную потоковую передачу.
Клиентские библиотеки Google Cloud: вы можете использовать эти библиотеки для доступа к API Google Cloud. Они основаны на gRPC для повышения производительности и предоставляют идиоматическую клиентскую поверхность для повышения удобства работы разработчиков.
Этот репозиторий содержит копии определений Google API и связанных файлов. Для обсуждения или поднятия вопросов, касающихся клиентских библиотек Google API, GRPC или клиентских библиотек Google Cloud, обратитесь к репозиториям, связанным с каждой областью.
В этом репозитории используется иерархия каталогов, отражающая структуру продукта Google API. Как правило, у каждого API есть собственный корневой каталог, а у каждой основной версии API — свой подкаталог. Имена пакетов прототипов точно соответствуют каталогу: это упрощает поиск определений прототипов и гарантирует, что сгенерированные клиентские библиотеки будут иметь идиоматические пространства имен в большинстве языков программирования. Рядом с каталогами API находятся файлы конфигурации для набора инструментов GAPIC.
ПРИМЕЧАНИЕ. Основная версия API используется для обозначения критических изменений API.
Чтобы сгенерировать исходный код gRPC для API Google в этом репозитории, сначала необходимо установить буферы протокола и gRPC на локальном компьютере, а затем запустить команду make LANGUAGE=xxx all
для создания исходного кода. Вам необходимо интегрировать сгенерированный исходный код в вашу систему сборки приложений.
ПРИМЕЧАНИЕ. Makefile предназначен только для создания исходного кода для всего репозитория. Он не предназначен для создания подключаемой клиентской библиотеки для конкретного API. См. другие репозитории на странице https://github.com/googleapis для создания подключаемых клиентских библиотек.
Из этого репозитория сложно сгенерировать исходный код Go gRPC, поскольку у Go другая структура каталогов. Пожалуйста, используйте вместо этого этот репозиторий.