Почему Google предлагает так много клиентских библиотек? Что следует использовать для ведения журнала Stackdriver?

Я пытаюсь отправить журналы в Stackdriver и немного смущен возможностью двух зависимостей, которые я мог бы использовать —

В клиентской библиотеке Google Cloud рекомендуется версия google-cloud. 0.35.0-альфа

В документах по ведению журналов рекомендуется установить google- облачная версия 1.14.0

Погуглил LogEntryOperation Я хочу использовать выдает версию google-api-services-logging v2-rev577-1.23.0.

Отличаются ли между ними базовые механизмы связи с API Google?

Какой из них является наиболее полнофункциональным, с наименьшей вероятностью устареет и будет поддерживаться в будущем? Почему их так много?


person Andrey Fedorov    schedule 26.02.2018    source источник


Ответы (1)


Google Cloud поставляет два типа клиентских библиотек:

  1. Автоматически сгенерированные библиотеки, которые просто напрямую экспортируют REST API. Они называются клиентскими библиотеками Google API. Их преимущество состоит в том, что они подробно охватывают каждый API на каждом языке.

    Для Java они находятся в com.google.apis. Это то, что вы нашли при поиске LogEntryOperation.

  2. Библиотеки ручной работы, которые стремятся быть более естественными. Они называются Google Cloud API. Они проще в использовании и лучше соответствуют тому, как используется язык. Однако они доступны для меньшего количества комбинаций API/языка и не всегда покрывают 100% API.

    Для Java они находятся в com.google.cloud. Это то, что рекомендуют наши документы. google-cloud — это просто удобный пакет для всех доступных библиотек, включая пакет google-cloud-logging для ведения журналов.

Библиотека протоколирования — хороший пример разницы. Поскольку реальный REST API предоставляет LogEntryOperation ресурс, автоматически сгенерированный API просто создает LogEntryOperation, который слепо копирует это.

Напротив, созданный вручную API имеет более краткое название Операционный класс. Кроме того, созданный вручную API предоставляет лучший статический конструктор, Builder, и более разумно называет методы first() и last().

person David    schedule 26.02.2018
comment
Спасибо. Разумно ли ожидать, что все они будут поддерживаться достаточно быстро и тщательно, или созданный вручную API всегда отстает по возможностям? - person Andrey Fedorov; 26.02.2018
comment
API-интерфейсы, созданные вручную, довольно хороши в отношении обновлений, но не идеальны. Если вы используете альфа- или бета-версии функций, вы, скорее всего, найдете нереализованные части. Конечно, они с открытым исходным кодом, так что вы можете сами добавлять новые функции ;) Команда также довольно отзывчив на проблемы GitHub. - person David; 26.02.2018
comment
@ Дэвид, а как насчет библиотек GAE? - person Jofre; 01.03.2018
comment
Это не клиентские библиотеки для других облачных продуктов. Это библиотеки для функций GAE. Они работают медленно, но это потому, что GAE больше не добавляет новые функции, подобные этим, а не потому, что они устарели. - person David; 07.03.2018