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.
petstore
Petstore - the Ruby gem for the OpenAPI Petstore
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: " \
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::AnotherFakeApi.new
client = Petstore::Client.new # Client | client model
begin
#To test special tags
result = api_instance.call_123_test_special_tags(client)
p result
rescue Petstore::ApiError => e
puts "Exception when calling AnotherFakeApi->call_123_test_special_tags: #{e}"
end
Documentation for API Endpoints
All URIs are relative to http://petstore.swagger.io:80/v2
Class | Method | HTTP request | Description |
---|---|---|---|
Petstore::AnotherFakeApi | call_123_test_special_tags | PATCH /another-fake/dummy | To test special tags |
Petstore::DefaultApi | foo_get | GET /foo | |
Petstore::FakeApi | fake_health_get | GET /fake/health | Health check endpoint |
Petstore::FakeApi | fake_http_signature_test | GET /fake/http-signature-test | test http signature authentication |
Petstore::FakeApi | fake_outer_boolean_serialize | POST /fake/outer/boolean | |
Petstore::FakeApi | fake_outer_composite_serialize | POST /fake/outer/composite | |
Petstore::FakeApi | fake_outer_number_serialize | POST /fake/outer/number | |
Petstore::FakeApi | fake_outer_string_serialize | POST /fake/outer/string | |
Petstore::FakeApi | fake_property_enum_integer_serialize | POST /fake/property/enum-int | |
Petstore::FakeApi | test_body_with_binary | PUT /fake/body-with-binary | |
Petstore::FakeApi | test_body_with_file_schema | PUT /fake/body-with-file-schema | |
Petstore::FakeApi | test_body_with_query_params | PUT /fake/body-with-query-params | |
Petstore::FakeApi | test_client_model | PATCH /fake | To test "client" model |
Petstore::FakeApi | test_endpoint_parameters | POST /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 |
Petstore::FakeApi | test_enum_parameters | GET /fake | To test enum parameters |
Petstore::FakeApi | test_group_parameters | DELETE /fake | Fake endpoint to test group parameters (optional) |
Petstore::FakeApi | test_inline_additional_properties | POST /fake/inline-additionalProperties | test inline additionalProperties |
Petstore::FakeApi | test_json_form_data | GET /fake/jsonFormData | test json serialization of form data |
Petstore::FakeApi | test_query_parameter_collection_format | PUT /fake/test-query-parameters | |
Petstore::FakeClassnameTags123Api | test_classname | PATCH /fake_classname_test | To test class name in snake case |
Petstore::PetApi | add_pet | POST /pet | Add a new pet to the store |
Petstore::PetApi | delete_pet | DELETE /pet/{petId} | Deletes a pet |
Petstore::PetApi | find_pets_by_status | GET /pet/findByStatus | Finds Pets by status |
Petstore::PetApi | find_pets_by_tags | GET /pet/findByTags | Finds Pets by tags |
Petstore::PetApi | get_pet_by_id | GET /pet/{petId} | Find pet by ID |
Petstore::PetApi | update_pet | PUT /pet | Update an existing pet |
Petstore::PetApi | update_pet_with_form | POST /pet/{petId} | Updates a pet in the store with form data |
Petstore::PetApi | upload_file | POST /pet/{petId}/uploadImage | uploads an image |
Petstore::PetApi | upload_file_with_required_file | POST /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required) |
Petstore::StoreApi | delete_order | DELETE /store/order/{order_id} | Delete purchase order by ID |
Petstore::StoreApi | get_inventory | GET /store/inventory | Returns pet inventories by status |
Petstore::StoreApi | get_order_by_id | GET /store/order/{order_id} | Find purchase order by ID |
Petstore::StoreApi | place_order | POST /store/order | Place an order for a pet |
Petstore::UserApi | create_user | POST /user | Create user |
Petstore::UserApi | create_users_with_array_input | POST /user/createWithArray | Creates list of users with given input array |
Petstore::UserApi | create_users_with_list_input | POST /user/createWithList | Creates list of users with given input array |
Petstore::UserApi | delete_user | DELETE /user/{username} | Delete user |
Petstore::UserApi | get_user_by_name | GET /user/{username} | Get user by user name |
Petstore::UserApi | login_user | GET /user/login | Logs user into the system |
Petstore::UserApi | logout_user | GET /user/logout | Logs out current logged in user session |
Petstore::UserApi | update_user | PUT /user/{username} | Updated user |
Documentation for Models
- Petstore::AdditionalPropertiesClass
- Petstore::AllOfWithSingleRef
- Petstore::Animal
- Petstore::ApiResponse
- Petstore::ArrayOfArrayOfNumberOnly
- Petstore::ArrayOfNumberOnly
- Petstore::ArrayTest
- Petstore::Capitalization
- Petstore::Cat
- Petstore::CatAllOf
- Petstore::Category
- Petstore::ClassModel
- Petstore::Client
- Petstore::DeprecatedObject
- Petstore::Dog
- Petstore::DogAllOf
- Petstore::EnumArrays
- Petstore::EnumClass
- Petstore::EnumTest
- Petstore::File
- Petstore::FileSchemaTestClass
- Petstore::Foo
- Petstore::FooGetDefaultResponse
- Petstore::FormatTest
- Petstore::HasOnlyReadOnly
- Petstore::HealthCheckResult
- Petstore::List
- Petstore::MapTest
- Petstore::MixedPropertiesAndAdditionalPropertiesClass
- Petstore::Model200Response
- Petstore::ModelReturn
- Petstore::Name
- Petstore::NullableClass
- Petstore::NumberOnly
- Petstore::ObjectWithDeprecatedFields
- Petstore::Order
- Petstore::OuterComposite
- Petstore::OuterEnum
- Petstore::OuterEnumDefaultValue
- Petstore::OuterEnumInteger
- Petstore::OuterEnumIntegerDefaultValue
- Petstore::OuterObjectWithEnumProperty
- Petstore::Pet
- Petstore::ReadOnlyFirst
- Petstore::SingleRefType
- Petstore::SpecialModelName
- Petstore::Tag
- Petstore::User
Documentation for Authorization
petstore_auth
- Type: OAuth
- Flow: implicit
- Authorization URL: http://petstore.swagger.io/api/oauth/dialog
- Scopes:
- write:pets: modify pets in your account
- read:pets: read your pets
api_key
- Type: API key
- API key parameter name: api_key
- Location: HTTP header
api_key_query
- Type: API key
- API key parameter name: api_key_query
- Location: URL query string
http_basic_test
- Type: HTTP basic authentication
bearer_test
- Type: Bearer authentication (JWT)