@@ -6,9 +6,10 @@ Binary Authorization is a service on Google Cloud that provides centralized soft
66
77Actual client classes for the various versions of this API are defined in
88_ versioned_ client gems, with names of the form ` google-cloud-binary_authorization-v* ` .
9- The gem ` google-cloud-binary_authorization ` is a convenience wrapper library that brings the
9+ The gem ` google-cloud-binary_authorization ` is the main client library that brings the
1010verisoned gems in as dependencies, and provides high-level methods for
11- constructing clients.
11+ constructing clients. More information on versioned clients can be found below
12+ in the section titled * Which client should I use?* .
1213
1314View the [ Client Library Documentation] ( https://googleapis.dev/ruby/google-cloud-binary_authorization/latest )
1415for this library, google-cloud-binary_authorization, to see the convenience methods for
@@ -69,3 +70,61 @@ in security maintenance, and not end of life. Currently, this means Ruby 2.4
6970and later. Older versions of Ruby _ may_ still work, but are unsupported and not
7071recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details
7172about the Ruby support schedule.
73+
74+ ## Which client should I use?
75+
76+ Most modern Ruby client libraries for Google APIs come in two flavors: the main
77+ client library with a name such as ` google-cloud-binary_authorization ` ,
78+ and lower-level _ versioned_ client libraries with names such as
79+ ` google-cloud-binary_authorization-v1beta1 ` .
80+ _ In most cases, you should install the main client._
81+
82+ ### What's the difference between the main client and a versioned client?
83+
84+ A _ versioned client_ provides a basic set of data types and client classes for
85+ a _ single version_ of a specific service. (That is, for a service with multiple
86+ versions, there might be a separate versioned client for each service version.)
87+ Most versioned clients are written and maintained by a code generator.
88+
89+ The _ main client_ is designed to provide you with the _ recommended_ client
90+ interfaces for the service. There will be only one main client for any given
91+ service, even a service with multiple versions. The main client includes
92+ factory methods for constructing the client objects we recommend for most
93+ users. In some cases, those will be classes provided by an underlying versioned
94+ client; in other cases, they will be handwritten higher-level client objects
95+ with additional capabilities, convenience methods, or best practices built in.
96+ Generally, the main client will default to a recommended service version,
97+ although in some cases you can override this if you need to talk to a specific
98+ service version.
99+
100+ ### Why would I want to use the main client?
101+
102+ We recommend that most users install the main client gem for a service. You can
103+ identify this gem as the one _ without_ a version in its name, e.g.
104+ ` google-cloud-binary_authorization ` .
105+ The main client is recommended because it will embody the best practices for
106+ accessing the service, and may also provide more convenient interfaces or
107+ tighter integration into frameworks and third-party libraries. In addition, the
108+ documentation and samples published by Google will generally demonstrate use of
109+ the main client.
110+
111+ ### Why would I want to use a versioned client?
112+
113+ You can use a versioned client if you are content with a possibly lower-level
114+ class interface, you explicitly want to avoid features provided by the main
115+ client, or you want to access a specific service version not be covered by the
116+ main client. You can identify versioned client gems because the service version
117+ is part of the name, e.g. ` google-cloud-binary_authorization-v1beta1 ` .
118+
119+ ### What about the google-apis-<name > clients?
120+
121+ Client library gems with names that begin with ` google-apis- ` are based on an
122+ older code generation technology. They talk to a REST/JSON backend (whereas
123+ most modern clients talk to a [ gRPC] ( https://grpc.io/ ) backend) and they may
124+ not offer the same performance, features, and ease of use provided by more
125+ modern clients.
126+
127+ The ` google-apis- ` clients have wide coverage across Google services, so you
128+ might need to use one if there is no modern client available for the service.
129+ However, if a modern client is available, we generally recommend it over the
130+ older ` google-apis- ` clients.
0 commit comments