Ivo Wever 2679819694
[Ruby] Client: fix base_url when no server_operation_index is defined (#15162)
As discussed in https://github.com/OpenAPITools/openapi-generator/pull/7415#discussion_r1113274416, it seems unlikely the code was correct.

server_operation_index is a hash table. In Ruby, `hash[key]` will return the value associated with `key`. If key is absent, `nil` is returned. Because that is sometimes undesirable, there is also `hash.fetch(key)`, which raises an error if the key is absent. It also allows you to specify a default to fall back on: `hash.fetch(key, default)` will return `default` if the key is absent.

So, since not all users will specify a 'server per operation' (or at least: I'm not), the old code would usually set `index` to the `server_index`, which is initialized to 0. The subsequent `if index == nil` will usually return false (`0 != nil` in Ruby), after which the `server_url` call on line 177 constructs the url based on the `server_operation_variables` and `operation_server_settings`, assuming we are dealing with the case where a server per operation is configured. The case where the url should be constructed from `scheme`, `host`, etc. is only called if either `server_index` is explicitly set to `nil` or the key `operation` is explicitly associated with the value `nil` in the `server_operation_index` hash table, both of which seem inappropriate.
2023-04-21 11:11:42 +08:00
..
2021-09-09 12:49:03 +08:00

x_auth_id_alias

XAuthIDAlias - the Ruby gem for the OpenAPI Extension x-auth-id-alias

This specification shows how to use x-auth-id-alias extension for API keys.

This SDK is automatically generated by the OpenAPI Generator project:

  • API version: 1.0.0
  • Package version: 1.0.0
  • Build package: org.openapitools.codegen.languages.RubyClientCodegen

Installation

Build a gem

To build the Ruby code into a gem:

gem build x_auth_id_alias.gemspec

Then either install the gem locally:

gem install ./x_auth_id_alias-1.0.0.gem

(for development, run gem install --dev ./x_auth_id_alias-1.0.0.gem to install the development dependencies)

or publish the gem to a gem hosting service, e.g. RubyGems.

Finally add this to the Gemfile:

gem 'x_auth_id_alias', '~> 1.0.0'

Install from Git

If the Ruby gem is hosted at a git repository: https://github.com/GIT_USER_ID/GIT_REPO_ID, then add the following in the Gemfile:

gem 'x_auth_id_alias', :git => 'https://github.com/GIT_USER_ID/GIT_REPO_ID.git'

Include the Ruby code directly

Include the Ruby code directly using -I as follows:

ruby -Ilib script.rb

Getting Started

Please follow the installation procedure and then run the following code:

# Load the gem
require 'x_auth_id_alias'

# Setup authorization
XAuthIDAlias.configure do |config|
  # Configure API key authorization: api_key
  config.api_key['api_key'] = 'YOUR API KEY'
  # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
  # config.api_key_prefix['api_key'] = 'Bearer'

  # Configure API key authorization: api_key_query
  config.api_key['api_key_query'] = 'YOUR API KEY'
  # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
  # config.api_key_prefix['api_key_query'] = 'Bearer'
end

api_instance = XAuthIDAlias::UsageApi.new

begin
  #Use any API key
  result = api_instance.any_key
  p result
rescue XAuthIDAlias::ApiError => e
  puts "Exception when calling UsageApi->any_key: #{e}"
end

Documentation for API Endpoints

All URIs are relative to http://petstore.swagger.io:80/v2

Class Method HTTP request Description
XAuthIDAlias::UsageApi any_key GET /any Use any API key
XAuthIDAlias::UsageApi both_keys GET /both Use both API keys
XAuthIDAlias::UsageApi key_in_header GET /header Use API key in header
XAuthIDAlias::UsageApi key_in_query GET /query Use API key in query

Documentation for Models

Documentation for Authorization

api_key

  • Type: API key
  • API key parameter name: X-Api-Key
  • Location: HTTP header

api_key_query

  • Type: API key
  • API key parameter name: api_key
  • Location: URL query string