From 9288cb9338a11344586ac6374846dfc2708296d2 Mon Sep 17 00:00:00 2001 From: ChengLei Shao Date: Sun, 27 Aug 2023 15:54:22 +0800 Subject: [PATCH] chore(api-doc): collection manager db views api doc --- .../collection-manager/src/swagger/index.json | 273 ------------------ .../collection-manager/src/swagger/index.ts | 150 +++++++++- 2 files changed, 143 insertions(+), 280 deletions(-) delete mode 100644 packages/plugins/collection-manager/src/swagger/index.json diff --git a/packages/plugins/collection-manager/src/swagger/index.json b/packages/plugins/collection-manager/src/swagger/index.json deleted file mode 100644 index 283a73d16..000000000 --- a/packages/plugins/collection-manager/src/swagger/index.json +++ /dev/null @@ -1,273 +0,0 @@ -{ - "openapi": "3.0.2", - "info": { - "title": "NocoBase API - Collection manager plugin" - }, - "tags": [], - "paths": { - "/collections:list": { - "get": { - "tags": ["collections"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collections:get": { - "get": { - "tags": ["collections"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collections:create": { - "post": { - "tags": ["collections"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collections:update": { - "post": { - "tags": ["collections"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collections:destroy": { - "post": { - "tags": ["collections"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collections:move": { - "post": { - "tags": ["collections"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collections:setFields": { - "post": { - "tags": ["collections"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collections/{collectionName}/fields:get": { - "get": { - "tags": ["collections.fields"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collections/{collectionName}/fields:list": { - "get": { - "tags": ["collections.fields"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collections/{collectionName}/fields:create": { - "post": { - "tags": ["collections.fields"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collections/{collectionName}/fields:update": { - "post": { - "tags": ["collections.fields"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collections/{collectionName}/fields:destroy": { - "post": { - "tags": ["collections.fields"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collections/{collectionName}/fields:move": { - "post": { - "tags": ["collections.fields"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collectionCategories:list": { - "post": { - "tags": ["collectionCategories"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collectionCategories:get": { - "post": { - "tags": ["collectionCategories"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collectionCategories:create": { - "post": { - "tags": ["collectionCategories"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collectionCategories:update": { - "post": { - "tags": ["collectionCategories"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collectionCategories:destroy": { - "post": { - "tags": ["collectionCategories"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/collectionCategories:move": { - "post": { - "tags": ["collectionCategories"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/dbViews:get": { - "get": { - "tags": ["dbViews"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/dbViews:list": { - "get": { - "tags": ["dbViews"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/dbViews:query": { - "get": { - "tags": ["dbViews"], - "description": "", - "parameters": [], - "responses": { - "200": { - "description": "OK" - } - } - } - } - } -} diff --git a/packages/plugins/collection-manager/src/swagger/index.ts b/packages/plugins/collection-manager/src/swagger/index.ts index cd9df083a..7a3bf1b9c 100644 --- a/packages/plugins/collection-manager/src/swagger/index.ts +++ b/packages/plugins/collection-manager/src/swagger/index.ts @@ -3,7 +3,21 @@ export default { info: { title: 'NocoBase API - Collection manager plugin', }, - tags: [], + tags: [ + { + name: 'collections', + }, + { + name: 'collections.fields', + }, + { + name: 'collectionCategories', + }, + { + name: 'dbViews', + description: 'manager db views', + }, + ], paths: { '/collections:list': { get: { @@ -236,11 +250,59 @@ export default { '/dbViews:get': { get: { tags: ['dbViews'], - description: '', - parameters: [], + summary: 'get db view fields', + parameters: [ + { + name: 'filterByTk', + in: 'query', + description: 'view name in database', + schema: { + type: 'string', + }, + required: true, + example: 'posts_view', + }, + { + name: 'schema', + in: 'query', + description: 'postgres schema of view in database', + schema: { + type: 'string', + }, + }, + ], responses: { '200': { description: 'OK', + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + data: { + type: 'object', + properties: { + fields: { + type: 'object', + additionalProperties: { + type: 'object', + properties: { + name: { type: 'string', description: 'field name' }, + type: { type: 'string', description: 'field type' }, + source: { type: 'string', required: false, description: 'source field of view field' }, + }, + }, + }, + sources: { + type: 'array', + items: { type: 'string' }, + }, + }, + }, + }, + }, + }, + }, }, }, }, @@ -248,11 +310,30 @@ export default { '/dbViews:list': { get: { tags: ['dbViews'], - description: '', - parameters: [], + summary: 'list views that not connected to collections in database', responses: { '200': { description: 'OK', + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + data: { + type: 'array', + items: { + type: 'object', + properties: { + name: { type: 'string', description: 'name of view' }, + definition: { type: 'string', description: 'definition of view' }, + schema: { type: 'string', description: 'schema of view' }, + }, + }, + }, + }, + }, + }, + }, }, }, }, @@ -260,11 +341,66 @@ export default { '/dbViews:query': { get: { tags: ['dbViews'], - description: '', - parameters: [], + summary: 'query db view data', + parameters: [ + { + name: 'filterByTk', + in: 'query', + description: 'view name in database', + schema: { + type: 'string', + }, + required: true, + example: 'posts_view', + }, + { + name: 'schema', + in: 'query', + description: 'postgres schema of view in database', + schema: { + type: 'string', + }, + }, + { + name: 'page', + in: 'query', + description: 'page number', + schema: { + type: 'integer', + }, + }, + { + name: 'pageSize', + in: 'query', + description: 'page size', + schema: { + type: 'integer', + }, + }, + ], responses: { '200': { description: 'OK', + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + data: { + type: 'array', + items: { + type: 'object', + description: 'row data of view', + additionalProperties: { + type: 'object', + description: "row data's field value", + }, + }, + }, + }, + }, + }, + }, }, }, },