routing-controllers-openapi
Version:
Runtime OpenAPI v3 spec generation for routing-controllers
772 lines • 18.4 kB
JSON
{
"components": {
"schemas": {
"CreateNestedBody": {
"properties": {
"users": {
"items": {
"$ref": "#/components/schemas/CreateUserBody"
},
"type": "array"
}
},
"required": [
"users"
],
"type": "object"
},
"CreatePostBody": {
"properties": {
"content": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"content"
],
"type": "object"
},
"CreateUserBody": {
"properties": {
"email": {
"format": "email",
"type": "string"
}
},
"required": [
"email"
],
"type": "object"
},
"ListUsersQueryParams": {
"properties": {
"email": {
"format": "email",
"type": "string"
},
"types": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"types"
],
"type": "object"
},
"CreateUserPostImagesBody": {
"properties": {
"description": {
"type": "string"
}
},
"required": [
"description"
],
"type": "object"
},
"ListUsersHeaderParams": {
"properties": {
"Authorization": {
"type": "string"
},
"X-Correlation-ID": {
"type": "string"
}
},
"required": [
"Authorization"
],
"type": "object"
},
"ModelDto": {
"properties": {
"age": {
"type": "integer"
},
"email": {
"format": "email",
"type": "string"
},
"username": {
"type": "string"
}
},
"required": [
"email",
"username"
],
"type": "object"
},
"UserQuery": {
"properties": {
"name": {
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"securitySchemes": {
"basicAuth": {
"scheme": "basic",
"type": "http"
},
"bearerAuth": {
"scheme": "bearer",
"type": "http"
}
}
},
"info": {
"title": "My app",
"version": "1.2.0"
},
"openapi": "3.0.0",
"paths": {
"/api": {
"get": {
"description": "Common description for all RootController operations",
"operationId": "RootController.getDefaultPath",
"responses": {
"200": {
"content": {
"text/html; charset=utf-8": {}
},
"description": "Successful response"
}
},
"security": [
{
"basicAuth": []
}
],
"summary": "Get default path",
"tags": [
"Root"
]
}
},
"/api/stringPath": {
"get": {
"description": "Common description for all RootController operations",
"operationId": "RootController.getStringPath",
"responses": {
"200": {
"content": {
"text/html; charset=utf-8": {}
},
"description": "Successful response"
}
},
"security": [],
"summary": "Get string path",
"tags": [
"Root"
]
}
},
"/api/users": {
"put": {
"description": "Insert or update a user object - DEPRECATED in v1.0.1",
"deprecated": true,
"summary": "",
"operationId": "UsersController.putUserDefault",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"limit": {
"type": "number"
},
"query": {
"$ref": "#/components/schemas/UserQuery"
},
"token": {
"type": "string"
}
},
"required": [
"token"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {}
},
"description": "Successful response"
}
},
"tags": [
"Users"
]
}
},
"/api/users/": {
"get": {
"description": "List all users",
"operationId": "UsersController.listUsers",
"parameters": [
{
"in": "header",
"name": "ListUsersHeaderParams",
"required": false,
"schema": {
"$ref": "#/components/schemas/ListUsersHeaderParams"
}
},
{
"in": "query",
"name": "email",
"required": false,
"schema": {
"format": "email",
"type": "string"
}
},
{
"in": "query",
"name": "types",
"required": true,
"schema": {
"items": {
"type": "string"
},
"type": "array"
}
}
],
"responses": {
"200": {
"content": {
"text/cvs": {
"schema": {
"items": {
"$ref": "#/components/schemas/ModelDto"
},
"type": "array"
}
}
},
"description": ""
}
},
"summary": "List users",
"tags": [
"Users"
]
},
"post": {
"operationId": "UsersController.createUser",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateUserBody"
}
}
},
"description": "CreateUserBody",
"required": false
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelDto"
}
}
},
"description": "Created user object"
}
},
"summary": "Create user",
"tags": [
"Users"
]
},
"put": {
"operationId": "UsersController.createManyUsers",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CreateUserBody"
}
}
}
},
"description": "CreateUserBody",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {}
},
"description": "Successful response"
}
},
"summary": "Create many users",
"tags": [
"Users"
]
}
},
"/api/users/nested": {
"post": {
"operationId": "UsersController.createNestedUsers",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateNestedBody"
}
}
},
"description": "CreateNestedBody",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {}
},
"description": "Successful response"
}
},
"summary": "Create nested users",
"tags": [
"Users"
]
}
},
"/api/users/withType": {
"post": {
"operationId": "UsersController.createUserWithType",
"parameters": [
{
"in": "query",
"name": "user",
"required": false,
"schema": {
"$ref": "#/components/schemas/CreateUserBody"
}
}
],
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelDto"
}
}
},
"description": "Created user object"
}
},
"summary": "Create user with type",
"tags": [
"Users"
]
}
},
"/api/users/{from}-{to}": {
"get": {
"operationId": "UsersController.listUsersInRange",
"parameters": [
{
"in": "path",
"name": "from",
"required": true,
"schema": {
"pattern": "[^\\/#\\?]+?",
"type": "string"
}
},
{
"in": "path",
"name": "to",
"required": true,
"schema": {
"pattern": "[^\\/#\\?]+?",
"type": "number"
}
},
{
"in": "query",
"name": "",
"required": false,
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "userId",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {}
},
"description": "Successful response"
},
"400": {
"description": "Bad request"
}
},
"summary": "List users in range",
"tags": [
"Users"
]
}
},
"/api/users/{userId}/posts/{postId}/images": {
"post": {
"operationId": "UserPostsController.createUserPostImages",
"parameters": [
{
"in": "path",
"name": "userId",
"required": true,
"schema": {
"pattern": "[^\\/#\\?]+?",
"type": "string"
}
},
{
"in": "path",
"name": "postId",
"required": true,
"schema": {
"pattern": "[^\\/#\\?]+?",
"type": "string"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/CreateUserPostImagesBody"
},
{
"properties": {
"images": {
"items": {
"format": "binary",
"type": "string"
},
"type": "array"
},
"token": {
"type": "string"
}
},
"required": [],
"type": "object"
}
]
}
}
},
"description": "CreateUserPostImagesBody",
"required": true
},
"responses": {
"200": {
"content": {
"text/html; charset=utf-8": {}
},
"description": "Successful response"
}
},
"summary": "Create user post images",
"tags": [
"User Posts"
]
}
},
"/api/users/{version}": {
"delete": {
"operationId": "UsersController.deleteUsersByVersion",
"parameters": [
{
"in": "path",
"name": "version",
"required": true,
"schema": {
"pattern": "v?\\d{1}|all",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {}
},
"description": "Successful response"
}
},
"summary": "Delete users by version",
"tags": [
"Users"
]
}
},
"/api/users/{userId}": {
"get": {
"operationId": "UsersController.getUser",
"parameters": [
{
"in": "header",
"name": "",
"required": false,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Requested-With",
"required": false,
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "userId",
"required": false,
"schema": {
"pattern": "[^\\/#\\?]+?",
"type": "number"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {}
},
"description": "Successful response"
}
},
"summary": "Get user",
"tags": [
"Users"
]
}
},
"/api/users/{userId}/avatar": {
"put": {
"operationId": "UsersController.putUserAvatar",
"parameters": [
{
"in": "path",
"name": "userId",
"required": true,
"schema": {
"pattern": "[^\\/#\\?]+?",
"type": "string"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"properties": {
"image": {
"format": "binary",
"type": "string"
}
},
"required": [],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {}
},
"description": "Successful response"
}
},
"summary": "Put user avatar",
"tags": [
"Users"
]
}
},
"/api/users/{userId}/posts": {
"post": {
"operationId": "UsersController.createUserPost",
"parameters": [
{
"in": "path",
"name": "userId",
"required": true,
"schema": {
"pattern": "[^\\/#\\?]+?",
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/CreatePostBody"
},
{
"properties": {
"token": {
"type": "string"
}
},
"required": [],
"type": "object"
}
]
}
}
},
"description": "CreatePostBody",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {}
},
"description": "Successful response"
}
},
"summary": "Create user post",
"tags": [
"Users"
]
}
},
"/api/users/{userId}/posts/{postId}": {
"get": {
"operationId": "UserPostsController.getUserPost",
"parameters": [
{
"in": "path",
"name": "userId",
"required": true,
"schema": {
"pattern": "[^\\/#\\?]+?",
"type": "number"
}
},
{
"in": "path",
"name": "postId",
"required": true,
"schema": {
"pattern": "[^\\/#\\?]+?",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"text/html; charset=utf-8": {}
},
"description": "Successful response"
}
},
"summary": "Get user post",
"tags": [
"User Posts"
]
},
"patch": {
"operationId": "UserPostsController.patchUserPost",
"parameters": [
{
"in": "path",
"name": "userId",
"required": true,
"schema": {
"pattern": "[^\\/#\\?]+?",
"type": "string"
}
},
{
"in": "path",
"name": "postId",
"required": true,
"schema": {
"pattern": "[^\\/#\\?]+?",
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"token": {
"type": "string"
}
},
"required": [],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"text/html; charset=utf-8": {}
},
"description": "Successful response"
}
},
"summary": "Patch user post",
"tags": [
"User Posts"
]
}
}
}
}