{
    "swagger": "2.0",
    "info": {
        "description": "基于 Fiber 框架的 swagger",
        "title": "GoFiber Study API",
        "termsOfService": "http://swagger.io/terms/",
        "contact": {
            "name": "Shikong",
            "email": "919411476@qq.com"
        },
        "license": {
            "name": "Apache 2.0",
            "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
        },
        "version": "1.0"
    },
    "basePath": "/",
    "paths": {
        "/auth/login": {
            "post": {
                "description": "用户登录",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Auth"
                ],
                "summary": "用户登录",
                "parameters": [
                    {
                        "description": "用户登录",
                        "name": "vo",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.Login"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/vo.Login"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            }
        },
        "/auth/refreshToken": {
            "post": {
                "description": "刷新令牌",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Auth"
                ],
                "summary": "刷新令牌",
                "parameters": [
                    {
                        "description": "刷新令牌",
                        "name": "vo",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.RefreshToken"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/vo.Login"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            }
        },
        "/casbin/getUserRoles": {
            "get": {
                "description": "用户所有角色",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CasBin"
                ],
                "summary": "用户所有角色",
                "parameters": [
                    {
                        "type": "string",
                        "default": "root",
                        "description": "用户账号",
                        "name": "account",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            }
        },
        "/casbin/reload": {
            "post": {
                "description": "重新加载 casbin 策略",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CasBin"
                ],
                "summary": "重新加载 casbin 策略",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            }
        },
        "/casbin/test": {
            "get": {
                "description": "casbin 鉴权测试",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "CasBin"
                ],
                "summary": "casbin 鉴权测试",
                "parameters": [
                    {
                        "type": "string",
                        "description": "身份",
                        "name": "identity",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "系统",
                        "name": "system",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "api",
                        "name": "api",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "动作",
                        "name": "act",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            }
        },
        "/error": {
            "get": {
                "description": "错误信息示例",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Error"
                ],
                "summary": "错误处理",
                "responses": {
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "description": "错误信息示例",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Error"
                ],
                "summary": "错误处理",
                "responses": {
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "description": "错误信息示例",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Error"
                ],
                "summary": "错误处理",
                "responses": {
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "description": "错误信息示例",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Error"
                ],
                "summary": "错误处理",
                "responses": {
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            },
            "patch": {
                "description": "错误信息示例",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Error"
                ],
                "summary": "错误处理",
                "responses": {
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            }
        },
        "/routes": {
            "get": {
                "description": "获取所有路由信息",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Routes"
                ],
                "summary": "获取所有路由",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "array",
                                                "items": {
                                                    "$ref": "#/definitions/fiber.Route"
                                                }
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/test/jwt": {
            "get": {
                "description": "jwt token 解析测试",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Test"
                ],
                "summary": "jwt token 解析测试",
                "parameters": [
                    {
                        "type": "string",
                        "description": "token",
                        "name": "token",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/global.UserClaims"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "description": "jwt token 生成测试",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Test"
                ],
                "summary": "jwt token 生成测试",
                "parameters": [
                    {
                        "description": "userClaims",
                        "name": "vo",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/global.UserClaims"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            }
        },
        "/test/nanoid": {
            "get": {
                "description": "nanoid 生成测试",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Test"
                ],
                "summary": "nanoid 生成测试",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            }
        },
        "/test/sonyFlake": {
            "get": {
                "description": "sonyFlake id 生成测试",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Test"
                ],
                "summary": "sonyFlake id 生成测试",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            }
        },
        "/user/account": {
            "get": {
                "security": [
                    {
                        "Token": []
                    }
                ],
                "description": "根据 账号 获取用户信息",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "根据 账号 获取用户信息",
                "parameters": [
                    {
                        "type": "string",
                        "description": "账号名称",
                        "name": "account",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/models.User"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "default": {
                        "description": "",
                        "schema": {
                            "$ref": "#/definitions/errorx.CodeErrorResponse"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "dto.Login": {
            "type": "object",
            "properties": {
                "account": {
                    "type": "string",
                    "example": "root"
                },
                "password": {
                    "type": "string",
                    "example": "12341234"
                }
            }
        },
        "dto.RefreshToken": {
            "type": "object",
            "properties": {
                "refreshToken": {
                    "type": "string",
                    "example": "0123456789ABCDEFG"
                }
            }
        },
        "errorx.CodeErrorResponse": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "integer",
                    "example": 200
                },
                "data": {},
                "msg": {
                    "type": "string",
                    "example": "OK"
                }
            }
        },
        "fiber.Route": {
            "type": "object",
            "properties": {
                "method": {
                    "description": "Public fields",
                    "type": "string"
                },
                "name": {
                    "description": "Route's name",
                    "type": "string"
                },
                "params": {
                    "description": "Case sensitive param keys",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "path": {
                    "description": "Original registered route path",
                    "type": "string"
                }
            }
        },
        "global.UserClaims": {
            "type": "object",
            "properties": {
                "account": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                }
            }
        },
        "models.User": {
            "type": "object",
            "properties": {
                "account": {
                    "type": "string"
                },
                "active": {
                    "type": "boolean"
                },
                "alias": {
                    "type": "string"
                },
                "contact": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "emailVerify": {
                    "type": "boolean"
                },
                "id": {
                    "type": "string"
                },
                "lastLoginTime": {
                    "type": "string"
                },
                "memo": {
                    "type": "string"
                },
                "registerTime": {
                    "type": "string"
                },
                "userName": {
                    "type": "string"
                }
            }
        },
        "response.Response": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "integer",
                    "example": 200
                },
                "data": {},
                "msg": {
                    "type": "string",
                    "example": "OK"
                }
            }
        },
        "vo.Login": {
            "type": "object",
            "properties": {
                "refreshToken": {
                    "description": "refreshToken 刷新令牌",
                    "type": "string",
                    "example": "0123456789ABCDEFG"
                },
                "token": {
                    "description": "token 用户令牌",
                    "type": "string",
                    "example": "0123456789ABCDEFG"
                }
            }
        }
    },
    "securityDefinitions": {
        "Token": {
            "type": "apiKey",
            "name": "token",
            "in": "header"
        }
    }
}