Justin Black d4b8ff60a1
[Java] Fixes schema class type booleans for composed schemas (#10334)
* Adds get/setIsString interface to IJsonSchemaValidationProperties

* Adds get/set isNumber interface in IJsonSchemaValidationProperties

* Adds get/set isAnyType in IJsonSchemaValidationProperties

* Adds and uses ModelUtils.isAnyType, adds setTypeProperties

* Adds missing descriptions of isAnyType parameters

* Uses ModelUtils.isAnyType

* Samples regenerated

* Moves isArray handling higher up in fromProperty

* Moves isAnyTypeSchema handling higher up in fromProperty

* Moves isFreeFormObject handling higher up in fromProperty

* Refactors fromProperties, updates tests

* Fixes the fromProperty refactor, tests now pass

* Uses setTypeProperties to set isNumber, isNull, isArray, and isUnboundedInteger

* Sets isAnyType in setTypeProperties

* Sets isMap in setTypeProperties

* Sets property.isPrimitiveType in isFreeFormObject, tweaks if condition order

* Adds fix for JavaClientCodegenTest.testJdkHttpClientWithAndWithoutDiscriminator

* Refactors fromProperty

* Adds updatePropertyForObject updatePropertyForAnyType

* Sets binary and file types to not be strings

* Updates samples

* Adds updatePropertyForString

* Adds testComposedPropertyTypes

* Fixes python test

* Samples updated

* Switches all isAnyTypeSchema usages to ModelUtils.isAnyType

* Refactors model enum handling higher up

* Moves m.dataType assignent higher into fromModel

* Moves m.isNullable setting higher into isModel

* Adds updateModelForComposedSchema

* Further fromModel refactoring, all schema checks are now at the same indentation level

* Further refactors fromModel, adds isTypeObjectSchema block

* Moves addVars into anyType or objectType blocks in fromModel

* Turns off isNullable n isAnyType array

* Fixes typescript CodegenParameers

* Adds updatePropertyForAnyType to typescript-axios so property.isNullable will be false for AnyType

* Adds testComposedModelTypes

* Updates ComposedAnyType schema

* Fixes tests for JavaJAXRSCXF by adding updateModelForObject method

* Updates go and csharp to handle object model differently

* Adds updateModelForAnyType

* Fixes name reference

* Adds testComposedResponseTypes

* Refactoring fromResponse

* Further refactoring of fromResponse

* Uses setTypeProperties in fromResponse

* Tests now pass for testComposedResponseTypes

* Sets COdegenResponse dataType using getTypeDeclaration

* Begins refactoring of fromRequestBody

* Adds updateResponseBodyForPrimitiveType

* Adds all needed type if else blocks in fromRequestBody

* Fixes JavaJAXRSCXFExtServerCodegenTests

* Fixes RubyClientCodegenTests

* Adds fixes for clients that need custom isMap for body parameters

* Ruby broken, samples regened, debugging

* Adds updateRequestBodyForArray, renames updateRequest.. methods

* Samples regenerated

* Removes changes from Ruby generator

* Reverts RubyClientCodegen.java

* Reverts changes to GoClientCodegen.java

* Reverts PowerShellClientCodegen.java

* Reverts CrystalClientCodegen.java

* Removes updateRequestBodyForObject from JavaCXFServerCodegen.java

* Adds comment about refed models

* Tweaks made to fromProperties to add an explanatory comment

* Updates RustServer to have ByteArray request bodies not be strings

* Sets types in fromFormProperty

* Adds testComposedRequestBodyTypes

* Fixes when validation syncing is done in syncValidationProperties

* Removes redundant validation code from fromParameter

* Moves parameter inX setting higher up before schema logic in fromParameter

* More refactoring in fromParameter, uses early return to reduce levels of indentation

* Removes setParameterBooleanFlagWithCodegenProperty from updateRequestBodyForArray

* Removes setParameterBooleanFlagWithCodegenProperty from updateRequestBodyForObject

* Removes setParameterBooleanFlagWithCodegenProperty from  updateRequestBodyForPrimitiveType

* Removes setParameterBooleanFlagWithCodegenProperty from updateRequestBodyForMap

* Removes setParameterBooleanFlagWithCodegenProperty from addBodyModelSchema

* Removes setParameterBooleanFlagWithCodegenProperty from fromFormProperty

* Refactors parameter array handling code into fromFormProperty

* Simplifies fromRequestBodyToFormParameters

* Removes setParameterBooleanFlagWithCodegenProperty from fromParameter

* Adds deprecated docstring to setParameterBooleanFlagWithCodegenProperty

* Refactors ModelUtils.isFileSchema out of string schema check

* Removes ModelUtils.isFileSchema from RustServer updateRequestBodyForString

* Improves comment text

* Fixes RustServer uuid type setting for CodegenParameter

* Removes unneeded parens

* Fixes array property examples

* Removes unused code

* Renames variable to itemsProperty

* Adds testComposedRequestQueryParamTypes

* Adds updatePropertyForAnyType to rustserver will not have changed model properties

* Hoists arrayInnerProperty._enum into parameter for html2 generator

* Moves turning string type off into the codegen files

* Adds two more missing locations in rustserver

* Moves addVarsRequiredVarsAdditionalProps into anytype and objecttype handling

* More refactoring of where addVarsRequiredVarsAdditionalProps is used

* Samples regenerated
2021-09-27 16:12:40 -07:00
..
2021-07-10 00:12:23 +08:00
2021-08-17 18:37:51 +08:00
2020-05-03 16:06:18 +08:00
2021-09-09 12:49:03 +08:00

petstore-native

OpenAPI Petstore

  • API version: 1.0.0

This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: " \

Automatically generated by the OpenAPI Generator

Requirements

Building the API client library requires:

  1. Java 11+
  2. Maven/Gradle

Installation

To install the API client library to your local Maven repository, simply execute:

mvn clean install

To deploy it to a remote Maven repository instead, configure the settings of the repository and execute:

mvn clean deploy

Refer to the OSSRH Guide for more information.

Maven users

Add this dependency to your project's POM:

<dependency>
  <groupId>org.openapitools</groupId>
  <artifactId>petstore-native</artifactId>
  <version>1.0.0</version>
  <scope>compile</scope>
</dependency>

Gradle users

Add this dependency to your project's build file:

compile "org.openapitools:petstore-native:1.0.0"

Others

At first generate the JAR by executing:

mvn clean package

Then manually install the following JARs:

  • target/petstore-native-1.0.0.jar
  • target/lib/*.jar

Getting Started

Please follow the installation instruction and execute the following Java code:


import org.openapitools.client.*;
import org.openapitools.client.model.*;
import org.openapitools.client.api.AnotherFakeApi;
import java.util.concurrent.CompletableFuture;

public class AnotherFakeApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();
        // Configure clients using the `defaultClient` object, such as
        // overriding the host and port, timeout, etc.
        AnotherFakeApi apiInstance = new AnotherFakeApi(defaultClient);
        Client body = new Client(); // Client | client model
        try {
            CompletableFuture<Client> result = apiInstance.call123testSpecialTags(body);
            System.out.println(result.get());
        } catch (ApiException e) {
            System.err.println("Exception when calling AnotherFakeApi#call123testSpecialTags");
            System.err.println("Status code: " + e.getCode());
            System.err.println("Reason: " + e.getResponseBody());
            System.err.println("Response headers: " + e.getResponseHeaders());
            e.printStackTrace();
        }
    }
}

Documentation for API Endpoints

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

Class Method HTTP request Description
AnotherFakeApi call123testSpecialTags PATCH /another-fake/dummy To test special tags
AnotherFakeApi call123testSpecialTagsWithHttpInfo PATCH /another-fake/dummy To test special tags
FakeApi createXmlItem POST /fake/create_xml_item creates an XmlItem
FakeApi createXmlItemWithHttpInfo POST /fake/create_xml_item creates an XmlItem
FakeApi fakeOuterBooleanSerialize POST /fake/outer/boolean
FakeApi fakeOuterBooleanSerializeWithHttpInfo POST /fake/outer/boolean
FakeApi fakeOuterCompositeSerialize POST /fake/outer/composite
FakeApi fakeOuterCompositeSerializeWithHttpInfo POST /fake/outer/composite
FakeApi fakeOuterNumberSerialize POST /fake/outer/number
FakeApi fakeOuterNumberSerializeWithHttpInfo POST /fake/outer/number
FakeApi fakeOuterStringSerialize POST /fake/outer/string
FakeApi fakeOuterStringSerializeWithHttpInfo POST /fake/outer/string
FakeApi testBodyWithFileSchema PUT /fake/body-with-file-schema
FakeApi testBodyWithFileSchemaWithHttpInfo PUT /fake/body-with-file-schema
FakeApi testBodyWithQueryParams PUT /fake/body-with-query-params
FakeApi testBodyWithQueryParamsWithHttpInfo PUT /fake/body-with-query-params
FakeApi testClientModel PATCH /fake To test &quot;client&quot; model
FakeApi testClientModelWithHttpInfo PATCH /fake To test &quot;client&quot; model
FakeApi testEndpointParameters POST /fake Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
FakeApi testEndpointParametersWithHttpInfo POST /fake Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
FakeApi testEnumParameters GET /fake To test enum parameters
FakeApi testEnumParametersWithHttpInfo GET /fake To test enum parameters
FakeApi testGroupParameters DELETE /fake Fake endpoint to test group parameters (optional)
FakeApi testGroupParametersWithHttpInfo DELETE /fake Fake endpoint to test group parameters (optional)
FakeApi testInlineAdditionalProperties POST /fake/inline-additionalProperties test inline additionalProperties
FakeApi testInlineAdditionalPropertiesWithHttpInfo POST /fake/inline-additionalProperties test inline additionalProperties
FakeApi testJsonFormData GET /fake/jsonFormData test json serialization of form data
FakeApi testJsonFormDataWithHttpInfo GET /fake/jsonFormData test json serialization of form data
FakeApi testQueryParameterCollectionFormat PUT /fake/test-query-parameters
FakeApi testQueryParameterCollectionFormatWithHttpInfo PUT /fake/test-query-parameters
FakeClassnameTags123Api testClassname PATCH /fake_classname_test To test class name in snake case
FakeClassnameTags123Api testClassnameWithHttpInfo PATCH /fake_classname_test To test class name in snake case
PetApi addPet POST /pet Add a new pet to the store
PetApi addPetWithHttpInfo POST /pet Add a new pet to the store
PetApi deletePet DELETE /pet/{petId} Deletes a pet
PetApi deletePetWithHttpInfo DELETE /pet/{petId} Deletes a pet
PetApi findPetsByStatus GET /pet/findByStatus Finds Pets by status
PetApi findPetsByStatusWithHttpInfo GET /pet/findByStatus Finds Pets by status
PetApi findPetsByTags GET /pet/findByTags Finds Pets by tags
PetApi findPetsByTagsWithHttpInfo GET /pet/findByTags Finds Pets by tags
PetApi getPetById GET /pet/{petId} Find pet by ID
PetApi getPetByIdWithHttpInfo GET /pet/{petId} Find pet by ID
PetApi updatePet PUT /pet Update an existing pet
PetApi updatePetWithHttpInfo PUT /pet Update an existing pet
PetApi updatePetWithForm POST /pet/{petId} Updates a pet in the store with form data
PetApi updatePetWithFormWithHttpInfo POST /pet/{petId} Updates a pet in the store with form data
PetApi uploadFile POST /pet/{petId}/uploadImage uploads an image
PetApi uploadFileWithHttpInfo POST /pet/{petId}/uploadImage uploads an image
PetApi uploadFileWithRequiredFile POST /fake/{petId}/uploadImageWithRequiredFile uploads an image (required)
PetApi uploadFileWithRequiredFileWithHttpInfo POST /fake/{petId}/uploadImageWithRequiredFile uploads an image (required)
StoreApi deleteOrder DELETE /store/order/{order_id} Delete purchase order by ID
StoreApi deleteOrderWithHttpInfo DELETE /store/order/{order_id} Delete purchase order by ID
StoreApi getInventory GET /store/inventory Returns pet inventories by status
StoreApi getInventoryWithHttpInfo GET /store/inventory Returns pet inventories by status
StoreApi getOrderById GET /store/order/{order_id} Find purchase order by ID
StoreApi getOrderByIdWithHttpInfo GET /store/order/{order_id} Find purchase order by ID
StoreApi placeOrder POST /store/order Place an order for a pet
StoreApi placeOrderWithHttpInfo POST /store/order Place an order for a pet
UserApi createUser POST /user Create user
UserApi createUserWithHttpInfo POST /user Create user
UserApi createUsersWithArrayInput POST /user/createWithArray Creates list of users with given input array
UserApi createUsersWithArrayInputWithHttpInfo POST /user/createWithArray Creates list of users with given input array
UserApi createUsersWithListInput POST /user/createWithList Creates list of users with given input array
UserApi createUsersWithListInputWithHttpInfo POST /user/createWithList Creates list of users with given input array
UserApi deleteUser DELETE /user/{username} Delete user
UserApi deleteUserWithHttpInfo DELETE /user/{username} Delete user
UserApi getUserByName GET /user/{username} Get user by user name
UserApi getUserByNameWithHttpInfo GET /user/{username} Get user by user name
UserApi loginUser GET /user/login Logs user into the system
UserApi loginUserWithHttpInfo GET /user/login Logs user into the system
UserApi logoutUser GET /user/logout Logs out current logged in user session
UserApi logoutUserWithHttpInfo GET /user/logout Logs out current logged in user session
UserApi updateUser PUT /user/{username} Updated user
UserApi updateUserWithHttpInfo PUT /user/{username} Updated user

Documentation for Models

Documentation for Authorization

Authentication schemes defined for the API:

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

Recommendation

It's recommended to create an instance of ApiClient per thread in a multithreaded environment to avoid any potential issues. However, the instances of the api clients created from the ApiClient are thread-safe and can be re-used.

Author