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 API client was generated by the OpenAPI Generator project. By using the OpenAPI-spec from a remote server, you can easily generate an API client.
- API version: 1.0.0
- Package version: 1.0.0
- Build package: org.openapitools.codegen.languages.GoClientCodegen
Install the following dependencies:
go get github.com/stretchr/testify/assert
go get golang.org/x/oauth2
go get golang.org/x/net/context
Put the package under your project folder and add the following in import:
import sw "./petstore"
To use a proxy, set the environment variable HTTP_PROXY
:
os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")
Default configuration comes with Servers
field that contains server objects as defined in the OpenAPI specification.
For using other server than the one defined on index 0 set context value sw.ContextServerIndex
of type int
.
ctx := context.WithValue(context.Background(), sw.ContextServerIndex, 1)
Templated server URL is formatted using default variables from configuration or from context value sw.ContextServerVariables
of type map[string]string
.
ctx := context.WithValue(context.Background(), sw.ContextServerVariables, map[string]string{
"basePath": "v2",
})
Note, enum values are always validated and all unused variables are silently ignored.
Each operation can use different server URL defined using OperationServers
map in the Configuration
.
An operation is uniquely identified by "{classname}Service.{nickname}"
string.
Similar rules for overriding default operation server index and variables applies by using sw.ContextOperationServerIndices
and sw.ContextOperationServerVariables
context maps.
ctx := context.WithValue(context.Background(), sw.ContextOperationServerIndices, map[string]int{
"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), sw.ContextOperationServerVariables, map[string]map[string]string{
"{classname}Service.{nickname}": {
"port": "8443",
},
})
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 |
DefaultApi | FooGet | Get /foo | |
FakeApi | FakeHealthGet | Get /fake/health | Health check endpoint |
FakeApi | FakeOuterBooleanSerialize | Post /fake/outer/boolean | |
FakeApi | FakeOuterCompositeSerialize | Post /fake/outer/composite | |
FakeApi | FakeOuterNumberSerialize | Post /fake/outer/number | |
FakeApi | FakeOuterStringSerialize | Post /fake/outer/string | |
FakeApi | TestBodyWithFileSchema | Put /fake/body-with-file-schema | |
FakeApi | TestBodyWithQueryParams | Put /fake/body-with-query-params | |
FakeApi | TestClientModel | Patch /fake | To test "client" model |
FakeApi | TestEndpointParameters | Post /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 |
FakeApi | TestEnumParameters | Get /fake | To test enum parameters |
FakeApi | TestGroupParameters | Delete /fake | Fake endpoint to test group parameters (optional) |
FakeApi | TestInlineAdditionalProperties | Post /fake/inline-additionalProperties | test inline additionalProperties |
FakeApi | TestJsonFormData | Get /fake/jsonFormData | test json serialization of form data |
FakeApi | TestQueryParameterCollectionFormat | Put /fake/test-query-parameters | |
FakeApi | TestUniqueItemsHeaderAndQueryParameterCollectionFormat | Put /fake/test-unique-parameters | |
FakeClassnameTags123Api | TestClassname | Patch /fake_classname_test | To test class name in snake case |
PetApi | AddPet | Post /pet | Add a new pet to the store |
PetApi | DeletePet | Delete /pet/{petId} | Deletes a pet |
PetApi | FindPetsByStatus | Get /pet/findByStatus | Finds Pets by status |
PetApi | FindPetsByTags | Get /pet/findByTags | Finds Pets by tags |
PetApi | GetPetById | Get /pet/{petId} | Find pet by ID |
PetApi | UpdatePet | Put /pet | Update an existing pet |
PetApi | UpdatePetWithForm | Post /pet/{petId} | Updates a pet in the store with form data |
PetApi | UploadFile | Post /pet/{petId}/uploadImage | uploads an image |
PetApi | UploadFileWithRequiredFile | Post /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required) |
StoreApi | DeleteOrder | Delete /store/order/{order_id} | Delete purchase order by ID |
StoreApi | GetInventory | Get /store/inventory | Returns pet inventories by status |
StoreApi | GetOrderById | Get /store/order/{order_id} | Find purchase order by ID |
StoreApi | PlaceOrder | Post /store/order | Place an order for a pet |
UserApi | CreateUser | Post /user | Create user |
UserApi | CreateUsersWithArrayInput | 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 | DeleteUser | Delete /user/{username} | Delete user |
UserApi | GetUserByName | Get /user/{username} | Get user by user name |
UserApi | LoginUser | Get /user/login | Logs user into the system |
UserApi | LogoutUser | Get /user/logout | Logs out current logged in user session |
UserApi | UpdateUser | Put /user/{username} | Updated user |
- AdditionalPropertiesClass
- Animal
- ApiResponse
- Apple
- AppleReq
- ArrayOfArrayOfNumberOnly
- ArrayOfNumberOnly
- ArrayTest
- Banana
- BananaReq
- Capitalization
- Cat
- CatAllOf
- Category
- ClassModel
- Client
- Dog
- DogAllOf
- EnumArrays
- EnumClass
- EnumTest
- File
- FileSchemaTestClass
- Foo
- FormatTest
- Fruit
- FruitReq
- GmFruit
- HasOnlyReadOnly
- HealthCheckResult
- InlineResponseDefault
- List
- Mammal
- MapTest
- MixedPropertiesAndAdditionalPropertiesClass
- Model200Response
- Name
- NullableClass
- NumberOnly
- Order
- OuterComposite
- OuterEnum
- OuterEnumDefaultValue
- OuterEnumInteger
- OuterEnumIntegerDefaultValue
- Pet
- ReadOnlyFirst
- ReadOnlyWithDefault
- Return
- SpecialModelName
- Tag
- User
- Whale
- Zebra
- Type: API key
- API key parameter name: api_key
- Location: HTTP header
Note, each API key must be added to a map of map[string]APIKey
where the key is: api_key and passed in as the auth context for each request.
- Type: API key
- API key parameter name: api_key_query
- Location: URL query string
Note, each API key must be added to a map of map[string]APIKey
where the key is: api_key_query and passed in as the auth context for each request.
- Type: HTTP Bearer token authentication
Example
auth := context.WithValue(context.Background(), sw.ContextAccessToken, "BEARERTOKENSTRING")
r, err := client.Service.Operation(auth, args)
- Type: HTTP basic authentication
Example
auth := context.WithValue(context.Background(), sw.ContextBasicAuth, sw.BasicAuth{
UserName: "username",
Password: "password",
})
r, err := client.Service.Operation(auth, args)
- Type: HTTP signature authentication
Example
authConfig := sw.HttpSignatureAuth{
KeyId: "my-key-id",
PrivateKeyPath: "rsa.pem",
Passphrase: "my-passphrase",
SigningScheme: sw.HttpSigningSchemeHs2019,
SignedHeaders: []string{
sw.HttpSignatureParameterRequestTarget, // The special (request-target) parameter expresses the HTTP request target.
sw.HttpSignatureParameterCreated, // Time when request was signed, formatted as a Unix timestamp integer value.
"Host", // The Host request header specifies the domain name of the server, and optionally the TCP port number.
"Date", // The date and time at which the message was originated.
"Content-Type", // The Media type of the body of the request.
"Digest", // A cryptographic digest of the request body.
},
SigningAlgorithm: sw.HttpSigningAlgorithmRsaPSS,
SignatureMaxValidity: 5 * time.Minute,
}
var authCtx context.Context
var err error
if authCtx, err = authConfig.ContextWithValue(context.Background()); err != nil {
// Process error
}
r, err = client.Service.Operation(auth, args)
- 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
Example
auth := context.WithValue(context.Background(), sw.ContextAccessToken, "ACCESSTOKENSTRING")
r, err := client.Service.Operation(auth, args)
Or via OAuth2 module to automatically refresh tokens and perform user authentication.
import "golang.org/x/oauth2"
/* Perform OAuth2 round trip request and obtain a token */
tokenSource := oauth2cfg.TokenSource(createContext(httpClient), &token)
auth := context.WithValue(oauth2.NoContext, sw.ContextOAuth2, tokenSource)
r, err := client.Service.Operation(auth, args)
Due to the fact that model structure members are all pointers, this package contains a number of utility functions to easily obtain pointers to values of basic types. Each of these functions takes a value of the given basic type and returns a pointer to it:
PtrBool
PtrInt
PtrInt32
PtrInt64
PtrFloat
PtrFloat32
PtrFloat64
PtrString
PtrTime