Justin Niessner db5941379f
[Python] Fix Python UTF-8 Encoding Issue (#5679)
* Try decoding but don't bail on error

* Switch binary and ByteArray to bytes

* Read content type and parse appropriately

* Remove response parsing

* Remove response parsing and just return the data

* Update petshop examples w/ new generator code

* Fix copy/paste error with naming

* Update petstore examples

* Move response decoding to inside _preload_content block

* Update the clients again

* Use a raw string for the regex pattern

* Regenerate petstore clients

* Add bytes to python primitives as it's supported in 2.7 and 3

* Add bytes to the exports from model_utils

* Import bytes from model_utils

* Add conditional typing for regex pattern to match variable type

* Regenerate petstore clients

* Use read() instead of text() for asyncio

* Regenerate petstore clients

* Remove unused six import

* Regenerate petstore clients

* Add newline to kick Circle to re-run

* Remove whitespace from tox.ini

* Update more examples after ensure_updated

* Add sample updates that didn't run with the --batch flag

* Remove extra bracket in regex to remove warning

* Stop printing debug messages

* Add bytes examples to python doc generators

* Update generated FakeApi docs

* Regenerate api_client.py

* Remove print statements from generated clients

* Update bytes example in FakeApi.md. Again. I swear.

* Add yet another seemingly missing doc update

* Catch the error, decode the body, and re-throw

* Remove the updates now that the change is non-breaking

* Regenerate client

* Add bytes deserialization test

* Update exception parsing

* Add exception parsing for python-experimental

* Regenerate client with minor changes

* Revert test changes

* Regenerate model_utils.py

* Update confusing test name

* Remove bytes from mapping and examples

* Add back in the old binary/ByteArray to str mapping

* Update docs and api_client template

* Add experimental api_client changes

* Regenerate samples again

* Add Tornado handling to early return

* Try fixing Tornado python returns

* More documentation changes

* Re-generate the client code

* Remove bytes from test_format_test

* Remove more leftover bytes usages

* Switch bytes validation back to string

* Fix format_test template and regenerate

* Remove unused bytes var

* Remove bytes import from models and regenerate

* Remove bytes import from test_deserialization

* Reduce nested ifs

* Remove byte logic for now

* Regenerate client after latest changes

* Remove another bytes usage

* Regenerate after removing dangling byte string usage

* Reduce the scope of the try/catch in api_client

* Regenerate after try/catch cleanup

* Swap catch for except

* Regenerate Python client after api_client change

* Fix lint error on the generated api_client

* Add binary format test back in w/ string

* Add decoding to python-experimental and regenerate

* Import re into python-experimental api_client

* Ensure file upload json response is utf-8 encoded bytes
2020-04-26 13:33:42 -07:00
..
2020-03-27 13:55:55 +08:00
2018-05-12 09:54:19 +08:00

petstore-api

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 Python package is automatically generated by the OpenAPI Generator project:

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

Requirements.

Python 2.7 and 3.4+

Installation & Usage

pip install

If the python package is hosted on a repository, you can install directly using:

pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git

(you may need to run pip with root permission: sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git)

Then import the package:

import petstore_api

Setuptools

Install via Setuptools.

python setup.py install --user

(or sudo python setup.py install to install the package for all users)

Then import the package:

import petstore_api

Getting Started

Please follow the installation procedure and then run the following:

from __future__ import print_function

import time
import petstore_api
from petstore_api.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to http://petstore.swagger.io:80/v2
# See configuration.py for a list of all supported configuration parameters.
configuration = petstore_api.Configuration(
    host = "http://petstore.swagger.io:80/v2"
)



# Enter a context with an instance of the API client
with petstore_api.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = petstore_api.AnotherFakeApi(api_client)
    body = petstore_api.Client() # Client | client model

    try:
        # To test special tags
        api_response = api_instance.call_123_test_special_tags(body)
        pprint(api_response)
    except ApiException as e:
        print("Exception when calling AnotherFakeApi->call_123_test_special_tags: %s\n" % e)
    

Documentation for API Endpoints

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

Class Method HTTP request Description
AnotherFakeApi call_123_test_special_tags PATCH /another-fake/dummy To test special tags
FakeApi create_xml_item POST /fake/create_xml_item creates an XmlItem
FakeApi fake_outer_boolean_serialize POST /fake/outer/boolean
FakeApi fake_outer_composite_serialize POST /fake/outer/composite
FakeApi fake_outer_number_serialize POST /fake/outer/number
FakeApi fake_outer_string_serialize POST /fake/outer/string
FakeApi test_body_with_file_schema PUT /fake/body-with-file-schema
FakeApi test_body_with_query_params PUT /fake/body-with-query-params
FakeApi test_client_model PATCH /fake To test "client" model
FakeApi test_endpoint_parameters POST /fake Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
FakeApi test_enum_parameters GET /fake To test enum parameters
FakeApi test_group_parameters DELETE /fake Fake endpoint to test group parameters (optional)
FakeApi test_inline_additional_properties POST /fake/inline-additionalProperties test inline additionalProperties
FakeApi test_json_form_data GET /fake/jsonFormData test json serialization of form data
FakeApi test_query_parameter_collection_format PUT /fake/test-query-paramters
FakeClassnameTags123Api test_classname PATCH /fake_classname_test To test class name in snake case
PetApi add_pet POST /pet Add a new pet to the store
PetApi delete_pet DELETE /pet/{petId} Deletes a pet
PetApi find_pets_by_status GET /pet/findByStatus Finds Pets by status
PetApi find_pets_by_tags GET /pet/findByTags Finds Pets by tags
PetApi get_pet_by_id GET /pet/{petId} Find pet by ID
PetApi update_pet PUT /pet Update an existing pet
PetApi update_pet_with_form POST /pet/{petId} Updates a pet in the store with form data
PetApi upload_file POST /pet/{petId}/uploadImage uploads an image
PetApi upload_file_with_required_file POST /fake/{petId}/uploadImageWithRequiredFile uploads an image (required)
StoreApi delete_order DELETE /store/order/{order_id} Delete purchase order by ID
StoreApi get_inventory GET /store/inventory Returns pet inventories by status
StoreApi get_order_by_id GET /store/order/{order_id} Find purchase order by ID
StoreApi place_order POST /store/order Place an order for a pet
UserApi create_user POST /user Create user
UserApi create_users_with_array_input POST /user/createWithArray Creates list of users with given input array
UserApi create_users_with_list_input POST /user/createWithList Creates list of users with given input array
UserApi delete_user DELETE /user/{username} Delete user
UserApi get_user_by_name GET /user/{username} Get user by user name
UserApi login_user GET /user/login Logs user into the system
UserApi logout_user GET /user/logout Logs out current logged in user session
UserApi update_user PUT /user/{username} Updated user

Documentation For Models

Documentation For Authorization

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

petstore_auth

Author