mirror of
https://github.com/valitydev/openapi-generator.git
synced 2024-11-07 19:08:52 +00:00
7cad47dd39
* [tools] Make sed in new.sh more cross-platform The -r option passed to sed is a GNU sed option for extended regex evaluation. The -E option evaluates the same option, and is part of the POSIX standard, meaning this option is available in GNU sed as well as Apple's BSD variant. This commit removes the need for users to install gnu-sed on Mac. * [ktor] Initial ktor (kotlin-server) This adds a very barebones implementation for a ktor server generator. This supports metrics and typed locations. All endpoins are stubbed to return HTTP/1.1 501 Not Implemented. * [ktor] Initial sample * [ktor] Adding options for select feature installs Options available: * featureAutoHead * featureConditionalHeaders * featureHSTS * featureCORS * featureCompression * [ktor] Start of auth functionality * [ktor] API key auth placeholder * Add basic support for oauth2 configurations ktor doesn't seem to explicitly accept oauth flow properties in its configuration object. This may be a blocker for 'implicit' flow definitions. * Added example response objects * [ktor] Route for apis with bodies, some cleanup ktor locations are only supported for routes with path/query parameters. Routes with body or file parameters must be declared with traditional route api. This commit also includes lambdas for simplifying processing in library-based server generator code. As an example, ktor requires lowercase http methods while spring (a potential future generator) would require an uppercase such as HttpMethod.GET. It doesn't make sense to modify these in the operations post-process method because that format wouldn't be universally desirable. The lambdas included in the KotlinServerCodegen: * lowercase: converts all text to lowercase * uppercase: converts all text to UPPERCASE * titlecase: converts words (with configurable delim) to Title Case * indented|indented_8|indented_12|indented_16: these helpers apply the same desired indent to all lines of an included fragment's text. * Fix some javadoc issues in lambda classes * Update kotlin-server-petstore.bat Change `kotlin` to `kotlin-server` * Fix javadoc error messages in CI |
||
---|---|---|
.. | ||
.swagger-codegen | ||
src/main | ||
.gitignore | ||
.swagger-codegen-ignore | ||
build.gradle | ||
Dockerfile | ||
gradle.properties | ||
README.md | ||
settings.gradle |
io.swagger.server - Kotlin Server library for Swagger Petstore
This is a sample server Petstore server. You can find out more about Swagger at http://swagger.io or on irc.freenode.net, #swagger. For this sample, you can use the api key `special-key` to test the authorization filters.
Generated by Swagger Codegen 2.3.0 (2018-01-21T22:11:17.518-05:00).
Requires
- Kotlin 1.2.10
- Gradle 4.3
Build
First, create the gradle wrapper script:
gradle wrapper
Then, run:
./gradlew check assemble
This runs all tests and packages the library.
Running
The server builds as a fat jar with a main entrypoint. To start the service, run java -jar ./build/libs/kotlin-server.jar
.
You may also run in docker:
docker build -t kotlin-server .
docker run -p 8080:8080 kotlin-server
Features/Implementation Notes
- Supports JSON inputs/outputs, File inputs, and Form inputs (see ktor documentation for more info).
- ~Supports collection formats for query parameters: csv, tsv, ssv, pipes.~
- Some Kotlin and Java types are fully qualified to avoid conflicts with types defined in Swagger definitions.
Documentation for API Endpoints
All URIs are relative to http://petstore.swagger.io/v2
Class | Method | HTTP request | Description |
---|---|---|---|
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 |
StoreApi | deleteOrder | DELETE /store/order/{orderId} | Delete purchase order by ID |
StoreApi | getInventory | GET /store/inventory | Returns pet inventories by status |
StoreApi | getOrderById | GET /store/order/{orderId} | 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 |
Documentation for Models
- io.swagger.server.models.ApiResponse
- io.swagger.server.models.Category
- io.swagger.server.models.Order
- io.swagger.server.models.Pet
- io.swagger.server.models.Tag
- io.swagger.server.models.User
Documentation for Authorization
api_key
- Type: API key
- API key parameter name: api_key
- Location: HTTP header
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