* [Ruby] Use Ruby autoload to lower memory usage and load times Fixes #12648 Requiring all models up front can be very expensive in both time and memory if there are many models. In an example client with 6000 models, this would consume nearly 400MB of memory and take about 7 seconds to load. This is mostly unnecessary as most users of the client library will only actually use a small percentage of the library. The changes in this commit use Ruby's autoload capability to defer the loading until the constant is actually used. In that same example client with 6000 models, when initially requiring the library, the memory usage dropped to ~20MB and loaded in 0.3 seconds. As the constants are loaded on-demand, the memory would increase towards that 400MB ceiling, but if only a few constants are actually used, then memory will never actually hit that ceiling. An additional side effect of using Ruby's autoload is that the order of declaring the constants is not important, as Ruby will naturally load them in the correct order when they are needed. Thus, this commit obviates PR #9103 and fixes #4690. * add option to use autoload in ruby client * test ruby clients only * add tests * update samples * Revert "test ruby clients only" This reverts commit 0aaf71cd4cc5d266f824b261a4d312f07bd589e5. * update doc Co-authored-by: Jason Frey <fryguy9@gmail.com>
16 KiB
Petstore::PetApi
All URIs are relative to http://petstore.swagger.io:80/v2
Method | HTTP request | Description |
---|---|---|
add_pet | POST /pet | Add a new pet to the store |
delete_pet | DELETE /pet/{petId} | Deletes a pet |
find_pets_by_status | GET /pet/findByStatus | Finds Pets by status |
find_pets_by_tags | GET /pet/findByTags | Finds Pets by tags |
get_pet_by_id | GET /pet/{petId} | Find pet by ID |
update_pet | PUT /pet | Update an existing pet |
update_pet_with_form | POST /pet/{petId} | Updates a pet in the store with form data |
upload_file | POST /pet/{petId}/uploadImage | uploads an image |
upload_file_with_required_file | POST /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required) |
add_pet
add_pet(pet)
Add a new pet to the store
Examples
require 'time'
require 'petstore'
# setup authorization
Petstore.configure do |config|
# Configure OAuth2 access token for authorization: petstore_auth
config.access_token = 'YOUR ACCESS TOKEN'
end
api_instance = Petstore::PetApi.new
pet = Petstore::Pet.new({name: 'doggie', photo_urls: ['photo_urls_example']}) # Pet | Pet object that needs to be added to the store
begin
# Add a new pet to the store
api_instance.add_pet(pet)
rescue Petstore::ApiError => e
puts "Error when calling PetApi->add_pet: #{e}"
end
Using the add_pet_with_http_info variant
This returns an Array which contains the response data (nil
in this case), status code and headers.
<Array(nil, Integer, Hash)> add_pet_with_http_info(pet)
begin
# Add a new pet to the store
data, status_code, headers = api_instance.add_pet_with_http_info(pet)
p status_code # => 2xx
p headers # => { ... }
p data # => nil
rescue Petstore::ApiError => e
puts "Error when calling PetApi->add_pet_with_http_info: #{e}"
end
Parameters
Name | Type | Description | Notes |
---|---|---|---|
pet | Pet | Pet object that needs to be added to the store |
Return type
nil (empty response body)
Authorization
HTTP request headers
- Content-Type: application/json, application/xml
- Accept: Not defined
delete_pet
delete_pet(pet_id, opts)
Deletes a pet
Examples
require 'time'
require 'petstore'
# setup authorization
Petstore.configure do |config|
# Configure OAuth2 access token for authorization: petstore_auth
config.access_token = 'YOUR ACCESS TOKEN'
end
api_instance = Petstore::PetApi.new
pet_id = 789 # Integer | Pet id to delete
opts = {
api_key: 'api_key_example' # String |
}
begin
# Deletes a pet
api_instance.delete_pet(pet_id, opts)
rescue Petstore::ApiError => e
puts "Error when calling PetApi->delete_pet: #{e}"
end
Using the delete_pet_with_http_info variant
This returns an Array which contains the response data (nil
in this case), status code and headers.
<Array(nil, Integer, Hash)> delete_pet_with_http_info(pet_id, opts)
begin
# Deletes a pet
data, status_code, headers = api_instance.delete_pet_with_http_info(pet_id, opts)
p status_code # => 2xx
p headers # => { ... }
p data # => nil
rescue Petstore::ApiError => e
puts "Error when calling PetApi->delete_pet_with_http_info: #{e}"
end
Parameters
Name | Type | Description | Notes |
---|---|---|---|
pet_id | Integer | Pet id to delete | |
api_key | String | [optional] |
Return type
nil (empty response body)
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: Not defined
find_pets_by_status
<Array> find_pets_by_status(status)
Finds Pets by status
Multiple status values can be provided with comma separated strings
Examples
require 'time'
require 'petstore'
# setup authorization
Petstore.configure do |config|
# Configure OAuth2 access token for authorization: petstore_auth
config.access_token = 'YOUR ACCESS TOKEN'
end
api_instance = Petstore::PetApi.new
status = ['available'] # Array<String> | Status values that need to be considered for filter
begin
# Finds Pets by status
result = api_instance.find_pets_by_status(status)
p result
rescue Petstore::ApiError => e
puts "Error when calling PetApi->find_pets_by_status: #{e}"
end
Using the find_pets_by_status_with_http_info variant
This returns an Array which contains the response data, status code and headers.
<Array(<Array>, Integer, Hash)> find_pets_by_status_with_http_info(status)
begin
# Finds Pets by status
data, status_code, headers = api_instance.find_pets_by_status_with_http_info(status)
p status_code # => 2xx
p headers # => { ... }
p data # => <Array<Pet>>
rescue Petstore::ApiError => e
puts "Error when calling PetApi->find_pets_by_status_with_http_info: #{e}"
end
Parameters
Name | Type | Description | Notes |
---|---|---|---|
status | Array<String> | Status values that need to be considered for filter |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/xml, application/json
find_pets_by_tags
<Array> find_pets_by_tags(tags)
Finds Pets by tags
Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
Examples
require 'time'
require 'petstore'
# setup authorization
Petstore.configure do |config|
# Configure OAuth2 access token for authorization: petstore_auth
config.access_token = 'YOUR ACCESS TOKEN'
end
api_instance = Petstore::PetApi.new
tags = ['inner_example'] # Array<String> | Tags to filter by
begin
# Finds Pets by tags
result = api_instance.find_pets_by_tags(tags)
p result
rescue Petstore::ApiError => e
puts "Error when calling PetApi->find_pets_by_tags: #{e}"
end
Using the find_pets_by_tags_with_http_info variant
This returns an Array which contains the response data, status code and headers.
<Array(<Array>, Integer, Hash)> find_pets_by_tags_with_http_info(tags)
begin
# Finds Pets by tags
data, status_code, headers = api_instance.find_pets_by_tags_with_http_info(tags)
p status_code # => 2xx
p headers # => { ... }
p data # => <Array<Pet>>
rescue Petstore::ApiError => e
puts "Error when calling PetApi->find_pets_by_tags_with_http_info: #{e}"
end
Parameters
Name | Type | Description | Notes |
---|---|---|---|
tags | Array<String> | Tags to filter by |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/xml, application/json
get_pet_by_id
get_pet_by_id(pet_id)
Find pet by ID
Returns a single pet
Examples
require 'time'
require 'petstore'
# setup authorization
Petstore.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'
end
api_instance = Petstore::PetApi.new
pet_id = 789 # Integer | ID of pet to return
begin
# Find pet by ID
result = api_instance.get_pet_by_id(pet_id)
p result
rescue Petstore::ApiError => e
puts "Error when calling PetApi->get_pet_by_id: #{e}"
end
Using the get_pet_by_id_with_http_info variant
This returns an Array which contains the response data, status code and headers.
<Array(, Integer, Hash)> get_pet_by_id_with_http_info(pet_id)
begin
# Find pet by ID
data, status_code, headers = api_instance.get_pet_by_id_with_http_info(pet_id)
p status_code # => 2xx
p headers # => { ... }
p data # => <Pet>
rescue Petstore::ApiError => e
puts "Error when calling PetApi->get_pet_by_id_with_http_info: #{e}"
end
Parameters
Name | Type | Description | Notes |
---|---|---|---|
pet_id | Integer | ID of pet to return |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/xml, application/json
update_pet
update_pet(pet)
Update an existing pet
Examples
require 'time'
require 'petstore'
# setup authorization
Petstore.configure do |config|
# Configure OAuth2 access token for authorization: petstore_auth
config.access_token = 'YOUR ACCESS TOKEN'
end
api_instance = Petstore::PetApi.new
pet = Petstore::Pet.new({name: 'doggie', photo_urls: ['photo_urls_example']}) # Pet | Pet object that needs to be added to the store
begin
# Update an existing pet
api_instance.update_pet(pet)
rescue Petstore::ApiError => e
puts "Error when calling PetApi->update_pet: #{e}"
end
Using the update_pet_with_http_info variant
This returns an Array which contains the response data (nil
in this case), status code and headers.
<Array(nil, Integer, Hash)> update_pet_with_http_info(pet)
begin
# Update an existing pet
data, status_code, headers = api_instance.update_pet_with_http_info(pet)
p status_code # => 2xx
p headers # => { ... }
p data # => nil
rescue Petstore::ApiError => e
puts "Error when calling PetApi->update_pet_with_http_info: #{e}"
end
Parameters
Name | Type | Description | Notes |
---|---|---|---|
pet | Pet | Pet object that needs to be added to the store |
Return type
nil (empty response body)
Authorization
HTTP request headers
- Content-Type: application/json, application/xml
- Accept: Not defined
update_pet_with_form
update_pet_with_form(pet_id, opts)
Updates a pet in the store with form data
Examples
require 'time'
require 'petstore'
# setup authorization
Petstore.configure do |config|
# Configure OAuth2 access token for authorization: petstore_auth
config.access_token = 'YOUR ACCESS TOKEN'
end
api_instance = Petstore::PetApi.new
pet_id = 789 # Integer | ID of pet that needs to be updated
opts = {
name: 'name_example', # String | Updated name of the pet
status: 'status_example' # String | Updated status of the pet
}
begin
# Updates a pet in the store with form data
api_instance.update_pet_with_form(pet_id, opts)
rescue Petstore::ApiError => e
puts "Error when calling PetApi->update_pet_with_form: #{e}"
end
Using the update_pet_with_form_with_http_info variant
This returns an Array which contains the response data (nil
in this case), status code and headers.
<Array(nil, Integer, Hash)> update_pet_with_form_with_http_info(pet_id, opts)
begin
# Updates a pet in the store with form data
data, status_code, headers = api_instance.update_pet_with_form_with_http_info(pet_id, opts)
p status_code # => 2xx
p headers # => { ... }
p data # => nil
rescue Petstore::ApiError => e
puts "Error when calling PetApi->update_pet_with_form_with_http_info: #{e}"
end
Parameters
Name | Type | Description | Notes |
---|---|---|---|
pet_id | Integer | ID of pet that needs to be updated | |
name | String | Updated name of the pet | [optional] |
status | String | Updated status of the pet | [optional] |
Return type
nil (empty response body)
Authorization
HTTP request headers
- Content-Type: application/x-www-form-urlencoded
- Accept: Not defined
upload_file
upload_file(pet_id, opts)
uploads an image
Examples
require 'time'
require 'petstore'
# setup authorization
Petstore.configure do |config|
# Configure OAuth2 access token for authorization: petstore_auth
config.access_token = 'YOUR ACCESS TOKEN'
end
api_instance = Petstore::PetApi.new
pet_id = 789 # Integer | ID of pet to update
opts = {
additional_metadata: 'additional_metadata_example', # String | Additional data to pass to server
file: File.new('/path/to/some/file') # File | file to upload
}
begin
# uploads an image
result = api_instance.upload_file(pet_id, opts)
p result
rescue Petstore::ApiError => e
puts "Error when calling PetApi->upload_file: #{e}"
end
Using the upload_file_with_http_info variant
This returns an Array which contains the response data, status code and headers.
<Array(, Integer, Hash)> upload_file_with_http_info(pet_id, opts)
begin
# uploads an image
data, status_code, headers = api_instance.upload_file_with_http_info(pet_id, opts)
p status_code # => 2xx
p headers # => { ... }
p data # => <ApiResponse>
rescue Petstore::ApiError => e
puts "Error when calling PetApi->upload_file_with_http_info: #{e}"
end
Parameters
Name | Type | Description | Notes |
---|---|---|---|
pet_id | Integer | ID of pet to update | |
additional_metadata | String | Additional data to pass to server | [optional] |
file | File | file to upload | [optional] |
Return type
Authorization
HTTP request headers
- Content-Type: multipart/form-data
- Accept: application/json
upload_file_with_required_file
upload_file_with_required_file(pet_id, required_file, opts)
uploads an image (required)
Examples
require 'time'
require 'petstore'
# setup authorization
Petstore.configure do |config|
# Configure OAuth2 access token for authorization: petstore_auth
config.access_token = 'YOUR ACCESS TOKEN'
end
api_instance = Petstore::PetApi.new
pet_id = 789 # Integer | ID of pet to update
required_file = File.new('/path/to/some/file') # File | file to upload
opts = {
additional_metadata: 'additional_metadata_example' # String | Additional data to pass to server
}
begin
# uploads an image (required)
result = api_instance.upload_file_with_required_file(pet_id, required_file, opts)
p result
rescue Petstore::ApiError => e
puts "Error when calling PetApi->upload_file_with_required_file: #{e}"
end
Using the upload_file_with_required_file_with_http_info variant
This returns an Array which contains the response data, status code and headers.
<Array(, Integer, Hash)> upload_file_with_required_file_with_http_info(pet_id, required_file, opts)
begin
# uploads an image (required)
data, status_code, headers = api_instance.upload_file_with_required_file_with_http_info(pet_id, required_file, opts)
p status_code # => 2xx
p headers # => { ... }
p data # => <ApiResponse>
rescue Petstore::ApiError => e
puts "Error when calling PetApi->upload_file_with_required_file_with_http_info: #{e}"
end
Parameters
Name | Type | Description | Notes |
---|---|---|---|
pet_id | Integer | ID of pet to update | |
required_file | File | file to upload | |
additional_metadata | String | Additional data to pass to server | [optional] |
Return type
Authorization
HTTP request headers
- Content-Type: multipart/form-data
- Accept: application/json