From 5e4ba4f3380900de1e65947a5aa6c7a5bd2c4fa1 Mon Sep 17 00:00:00 2001 From: Baihhh <63110802+Baihhh@users.noreply.github.com> Date: Thu, 27 Jul 2023 23:55:35 +0800 Subject: [PATCH] feat: add authorize button and defaultValue (#2152) Signed-off-by: baihhh <2542274498@qq.com> --- controllers/webhook.go | 7 ++-- routers/router.go | 4 ++ swagger/swagger.json | 95 +++++++++++++++++++++++++++++------------- swagger/swagger.yml | 55 ++++++++++++++++++------ 4 files changed, 117 insertions(+), 44 deletions(-) diff --git a/controllers/webhook.go b/controllers/webhook.go index 85b1aa0f..12bdf14b 100644 --- a/controllers/webhook.go +++ b/controllers/webhook.go @@ -26,9 +26,10 @@ import ( // @Title GetWebhooks // @Tag Webhook API // @Description get webhooks -// @Param owner query string true "The owner of webhooks" +// @Param owner query string built-in/admin true "The owner of webhooks" // @Success 200 {array} object.Webhook The Response object // @router /get-webhooks [get] +// @Security test_apiKey func (c *ApiController) GetWebhooks() { owner := c.Input().Get("owner") limit := c.Input().Get("pageSize") @@ -71,7 +72,7 @@ func (c *ApiController) GetWebhooks() { // @Title GetWebhook // @Tag Webhook API // @Description get webhook -// @Param id query string true "The id ( owner/name ) of the webhook" +// @Param id query string built-in/admin true "The id ( owner/name ) of the webhook" // @Success 200 {object} object.Webhook The Response object // @router /get-webhook [get] func (c *ApiController) GetWebhook() { @@ -90,7 +91,7 @@ func (c *ApiController) GetWebhook() { // @Title UpdateWebhook // @Tag Webhook API // @Description update webhook -// @Param id query string true "The id ( owner/name ) of the webhook" +// @Param id query string built-in/admin true "The id ( owner/name ) of the webhook" // @Param body body object.Webhook true "The details of the webhook" // @Success 200 {object} controllers.Response The Response object // @router /update-webhook [post] diff --git a/routers/router.go b/routers/router.go index 04b12956..39bb8358 100644 --- a/routers/router.go +++ b/routers/router.go @@ -17,6 +17,10 @@ // @Title Casdoor API // @Description Documentation of Casdoor API // @Contact admin@casbin.org +// @SecurityDefinition test_apiKey apiKey Authorization header +// @Schemes http,https +// @ExternalDocs Find out more about casdoor +// @ExternalDocsUrl https://casdoor.org/ package routers import ( diff --git a/swagger/swagger.json b/swagger/swagger.json index 5fa11b53..f092da85 100644 --- a/swagger/swagger.json +++ b/swagger/swagger.json @@ -9,6 +9,10 @@ } }, "basePath": "/", + "schemes": [ + "http", + "https" + ], "paths": { "/.well-known/jwks": { "get": { @@ -3682,7 +3686,8 @@ "name": "id", "description": "The id ( owner/name ) of the webhook", "required": true, - "type": "string" + "type": "string", + "default": "built-in/admin" } ], "responses": { @@ -3708,7 +3713,8 @@ "name": "owner", "description": "The owner of webhooks", "required": true, - "type": "string" + "type": "string", + "default": "built-in/admin" } ], "responses": { @@ -3721,7 +3727,12 @@ } } } - } + }, + "security": [ + { + "test_apiKey": [] + } + ] } }, "/api/health": { @@ -5170,7 +5181,8 @@ "name": "id", "description": "The id ( owner/name ) of the webhook", "required": true, - "type": "string" + "type": "string", + "default": "built-in/admin" }, { "in": "body", @@ -5419,14 +5431,6 @@ } }, "definitions": { - "1225.0xc000333110.false": { - "title": "false", - "type": "object" - }, - "1260.0xc000333140.false": { - "title": "false", - "type": "object" - }, "LaravelResponse": { "title": "LaravelResponse", "type": "object" @@ -5480,10 +5484,16 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/1225.0xc000333110.false" + "additionalProperties": { + "description": "support string | class | List\u003cclass\u003e and os on", + "type": "string" + } }, "data2": { - "$ref": "#/definitions/1260.0xc000333140.false" + "additionalProperties": { + "description": "support string | class | List\u003cclass\u003e and os on", + "type": "string" + } }, "msg": { "type": "string" @@ -5525,10 +5535,6 @@ "title": "object", "type": "object" }, - "object.\u0026{197582 0xc000ace360 false}": { - "title": "\u0026{197582 0xc000ace360 false}", - "type": "object" - }, "object.AccountItem": { "title": "AccountItem", "type": "object", @@ -5722,7 +5728,7 @@ "title": "CasbinRequest", "type": "array", "items": { - "$ref": "#/definitions/object.\u0026{197582 0xc000ace360 false}" + "$ref": "#/definitions/object.CasbinRequest" } }, "object.Cert": { @@ -7765,15 +7771,21 @@ "type": "object", "properties": { "contentType": { - "type": "string" + "default": "application/json", + "type": "string", + "example": "application/json" }, "createdTime": { - "type": "string" + "default": "2023-07-27T17:09:12+08:00", + "type": "string", + "example": "2023-07-27T17:09:12+08:00" }, "events": { "type": "array", "items": { - "type": "string" + "type": "string", + "default": "test", + "example": "test" } }, "headers": { @@ -7783,25 +7795,39 @@ } }, "isEnabled": { - "type": "boolean" + "default": true, + "type": "boolean", + "example": true }, "isUserExtended": { - "type": "boolean" + "default": true, + "type": "boolean", + "example": true }, "method": { - "type": "string" + "default": "POST", + "type": "string", + "example": "POST" }, "name": { - "type": "string" + "default": "test", + "type": "string", + "example": "test" }, "organization": { - "type": "string" + "default": "built-in", + "type": "string", + "example": "built-in" }, "owner": { - "type": "string" + "default": "built-in", + "type": "string", + "example": "built-in" }, "url": { - "type": "string" + "default": "https://example.com/callback", + "type": "string", + "example": "https://example.com/callback" } } }, @@ -7866,5 +7892,16 @@ "title": "Engine", "type": "object" } + }, + "securityDefinitions": { + "test_apiKey": { + "type": "apiKey", + "name": "Authorization", + "in": "header" + } + }, + "externalDocs": { + "description": "Find out more about casdoor", + "url": "https://casdoor.org/" } } \ No newline at end of file diff --git a/swagger/swagger.yml b/swagger/swagger.yml index a29e3a47..71451692 100644 --- a/swagger/swagger.yml +++ b/swagger/swagger.yml @@ -6,6 +6,9 @@ info: contact: email: admin@casbin.org basePath: / +schemes: +- http +- https paths: /.well-known/jwks: get: @@ -2401,6 +2404,7 @@ paths: description: The id ( owner/name ) of the webhook required: true type: string + default: built-in/admin responses: "200": description: The Response object @@ -2418,6 +2422,7 @@ paths: description: The owner of webhooks required: true type: string + default: built-in/admin responses: "200": description: The Response object @@ -2425,6 +2430,8 @@ paths: type: array items: $ref: '#/definitions/object.Webhook' + security: + - test_apiKey: [] /api/health: get: tags: @@ -3381,6 +3388,7 @@ paths: description: The id ( owner/name ) of the webhook required: true type: string + default: built-in/admin - in: body name: body description: The details of the webhook @@ -3541,12 +3549,6 @@ paths: schema: $ref: '#/definitions/controllers.Response' definitions: - 1225.0xc000333110.false: - title: "false" - type: object - 1260.0xc000333140.false: - title: "false" - type: object LaravelResponse: title: LaravelResponse type: object @@ -3586,9 +3588,13 @@ definitions: type: object properties: data: - $ref: '#/definitions/1225.0xc000333110.false' + additionalProperties: + description: support string | class | List and os on + type: string data2: - $ref: '#/definitions/1260.0xc000333140.false' + additionalProperties: + description: support string | class | List and os on + type: string msg: type: string name: @@ -3615,9 +3621,6 @@ definitions: object: title: object type: object - object.&{197582 0xc000ace360 false}: - title: '&{197582 0xc000ace360 false}' - type: object object.AccountItem: title: AccountItem type: object @@ -3749,7 +3752,7 @@ definitions: title: CasbinRequest type: array items: - $ref: '#/definitions/object.&{197582 0xc000ace360 false}' + $ref: '#/definitions/object.CasbinRequest' object.Cert: title: Cert type: object @@ -5123,31 +5126,51 @@ definitions: type: object properties: contentType: + default: application/json type: string + example: application/json createdTime: + default: "2023-07-27T17:09:12+08:00" type: string + example: "2023-07-27T17:09:12+08:00" events: + default: '[ddd]' type: array items: type: string headers: + default: '[]' type: array items: $ref: '#/definitions/object.Header' isEnabled: + default: true type: boolean + example: true isUserExtended: + default: true type: boolean + example: true method: + default: POST type: string + example: POST name: + default: test type: string + example: test organization: + default: built-in type: string + example: built-in owner: + default: built-in type: string + example: built-in url: + default: https://example.com/callback type: string + example: https://example.com/callback protocol.CredentialAssertion: title: CredentialAssertion type: object @@ -5192,3 +5215,11 @@ definitions: xorm.Engine: title: Engine type: object +securityDefinitions: + test_apiKey: + type: apiKey + name: Authorization + in: header +externalDocs: + description: Find out more about casdoor + url: https://casdoor.org/