X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/8ae04bc41c256e89a835f8ce6ea81bd28031ae26..1fca88a96c086d7d1c22690ad2659781a5b2f5e9:/README.md diff --git a/README.md b/README.md index f396949535..510ae817e9 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,10 @@ The Google API Ruby Client makes it trivial to discover and access supported APIs. +## Alpha + +This library is in Alpha. We will make an effort to support the library, but we reserve the right to make incompatible changes when necessary. + ## Install Be sure `https://rubygems.org/` is in your gem sources. @@ -83,8 +87,13 @@ drive = client.discovered_api('drive', 'v2') Locally cached discovery documents may be used as well. To load an API from a local file: ```ruby +# Output discovery document to JSON +File.open('my-api.json', 'w') do |f| f.puts MultiJson.dump(client.discovery_document('myapi', 'v1')) end + +# Read discovery document and load API doc = File.read('my-api.json') -my_api = client.register_discovery_document('myapi', 'v1', doc) +client.register_discovery_document('myapi', 'v1', doc) +my_api = client.discovered_api('myapi', 'v1') ``` ### Authorization @@ -95,6 +104,19 @@ Credentials can be managed at the connection level, as shown, or supplied on a p For server-to-server interactions, like those between a web application and Google Cloud Storage, Prediction, or BigQuery APIs, use service accounts. +As of version 0.8.3, service accounts can be configured using +[Application Default Credentials][1], which rely on the credentials being +available in a well-known location. If the credentials are not present +and it's being used on a Compute Engine VM, it will use the VM's default credentials. + +```ruby +client.authorization = :google_app_default # in a later version, this will become the default +client.authorization.fetch_access_token! +client.execute(...) +``` + +This is simpler API to use than in previous versions, although that is still available: + ```ruby key = Google::APIClient::KeyUtils.load_from_pkcs12('client.p12', 'notasecret') client.authorization = Signet::OAuth2::Client.new( @@ -114,6 +136,8 @@ in the credentials. Detailed instructions on how to enable delegation for your d The API client can automatically retry requests for recoverable errors. To enable retries, set the `client.retries` property to the number of additional attempts. To avoid flooding servers, retries invovle a 1 second delay that increases on each subsequent retry. +In the case of authentication token expiry, the API client will attempt to refresh the token and retry the failed operation - this +is a specific exception to the retry rules. The default value for retries is 0, but will be enabled by default in future releases. @@ -126,7 +150,7 @@ Example: ```ruby client = Google::APIClient.new -urlshortener = client.discovered_api('urlshortner') +urlshortener = client.discovered_api('urlshortener') batch = Google::APIClient::BatchRequest.new do |result| puts result.data @@ -190,3 +214,5 @@ See the full list of [samples on Github](https://github.com/google/google-api-ru ## Support Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com). + +[1]: https://developers.google.com/accounts/docs/application-default-credentials