swagger: "2.0" info: description: "This is a template for the KeyValue repositories from [microutils](https://github.com/InsanusMokrassar/MicroUtils/tree/master/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key/value)" version: "0.11.0" title: "KeyValue Repo" contact: email: "ovsyannikov.alexey95@gmail.com" tags: - name: "Read" description: "Operations with `get` request in most cases" - name: "Write" description: "Operations with `post` request in most cases" parameters: KeyInQuery: in: "query" name: "key" allOf: - $ref: "#/definitions/Key" KeysInBody: in: "body" name: "body" type: array items: $ref: "#/definitions/Key" ValuesInBody: in: "body" name: "body" type: array items: $ref: "#/definitions/Value" PaginationInQueryPage: in: "query" type: integer name: "ppage" description: "Page of pagination" required: false PaginationInQuerySize: in: "query" type: integer name: "psize" description: "Size of each page in pagination" required: false ReversedInQuery: in: "query" type: boolean name: "reversed" description: "If passed, will tell to reverse the result pages" required: false ValueInQuery: in: "query" name: "value" allOf: - $ref: "#/definitions/Value" MapInBody: in: "body" name: "body" allOf: - $ref: "#/definitions/Map" definitions: Key: type: integer description: "REWRITE THIS TYPE AS KEY IN SWAGGER FILE" Value: type: integer description: "REWRITE THIS TYPE AS VALUE IN SWAGGER FILE" Map: type: object description: "Map of objects" PaginationResult: type: object properties: page: type: integer description: "Page of pagination" pagesNumber: type: integer description: "Count of pages with the size from this pagination" size: type: integer description: "Size of each page in pagination" results: type: array description: "Array of all elements on that page. Size of pagination and size of array can be different and it can be interpreted like current page is the last one" items: type: object paths: /get: get: tags: - "Read" parameters: - $ref: "#/parameters/KeyInQuery" required: true responses: "200": description: "Element by key" schema: $ref: "#/definitions/Value" "204": description: "No value by id" /values: get: tags: - "Read" parameters: - $ref: "#/parameters/PaginationInQueryPage" - $ref: "#/parameters/PaginationInQuerySize" - $ref: "#/parameters/ReversedInQuery" responses: "200": description: "Pagination with elements" schema: allOf: - $ref: "#/definitions/PaginationResult" - properties: results: items: $ref: "#/definitions/Value" /keys: get: tags: - "Read" parameters: - $ref: "#/parameters/PaginationInQueryPage" - $ref: "#/parameters/PaginationInQuerySize" - $ref: "#/parameters/ReversedInQuery" - $ref: "#/parameters/ValueInQuery" required: false responses: "200": description: "Pagination with elements" schema: allOf: - $ref: "#/definitions/PaginationResult" - properties: results: items: $ref: "#/definitions/Key" /contains: get: tags: - "Read" parameters: - $ref: "#/parameters/KeyInQuery" required: true responses: "200": description: "Object with id availability in repo" schema: type: boolean /count: get: tags: - "Read" responses: "200": description: "Amount of objects in repo" schema: type: integer /set: post: tags: - "Write" parameters: - allOf: - $ref: "#/parameters/MapInBody" - additionalProperties: $ref: "#/definitions/Value" description: "Map with new elements to set. Use keys as a keys of this map" responses: "200": description: "Will return 200 if everything has been completed ok" /unset: post: tags: - "Write" parameters: - $ref: "#/parameters/KeysInBody" responses: "200": description: "Objects with keys from body has been unset" /unsetWithValues: post: tags: - "Write" parameters: - $ref: "#/parameters/ValuesInBody" responses: "200": description: "Objects with values from body has been unset"