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

petstore

Petstore - the Ruby gem for the OpenAPI Extension generating aliases to maps and arrays as models

This specification shows how to generate aliases to maps and arrays as models.

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 petstore.gemspec

Then either install the gem locally:

gem install ./petstore-1.0.0.gem

(for development, run gem install --dev ./petstore-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 'petstore', '~> 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 'petstore', :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 'petstore'

api_instance = Petstore::UsageApi.new
opts = {
  array_alias: Petstore::ArrayAlias.new # ArrayAlias | 
}

begin
  #Use alias to array
  result = api_instance.array(opts)
  p result
rescue Petstore::ApiError => e
  puts "Exception when calling UsageApi->array: #{e}"
end

Documentation for API Endpoints

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

Class Method HTTP request Description
Petstore::UsageApi array GET /array Use alias to array
Petstore::UsageApi map GET /map Use alias to map

Documentation for Models

Documentation for Authorization

All endpoints do not require authorization.