tachybase_todo/packages/plugins/@nocobase/plugin-api-doc
被雨水过滤的空气-Rain 29bf187fbf
chore: optimize locators (#2833)
* test(e2e): better locators for designer buttons

* fix: make test passing

* refactor: remove DesignerControl

* chore: better locators

* fix: should not disable add-menu-item

* chore: better test id for block

* chore: optimize Action

* chore: remove role in BlockItem

* feat: improve locators

* chore: menu & add block

* chore: initializer

* chore: testid -> aria label

* chore: tabs

* chore: designers

* refactor: optimize schemaInitializer

* refactor: rename

* chore: add collectionName

* chore: block item

* chore: action

* fix: avoid crashting

* chore(e2e): add __E2E__

* chore: all dialog

* chore: add aria-label for block menu

* Revert "chore: add aria-label for block menu"

This reverts commit 6a840ef816ee1095484dc268b5dfa1bbe6cd8cbe.

* chore: optimize aria-label of Action

* chore: schema-initializer

* chore(e2e): increase timeout

* chore: schema settings

* chore: optimize table

* chore: workflow

* chore: plugin manager

* chore: collection manager and workflow

* chore: details of workflow

* chore: remove testid of Select

* test: fix unit-tests

* test: fix unit-tests

* test(e2e): passing tests

* test: fix unit test

* chore: should use hover

* test: passing tests

* chore: passing tests

* chore: fix CI

* chore: fix CI

* chore: increase timeout in CI

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-10-27 15:32:17 +08:00
..
src chore: optimize locators (#2833) 2023-10-27 15:32:17 +08:00
.npmignore feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
client.d.ts feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
client.js feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
LICENSE feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
package.json chore(versions): 😊 publish v0.14.0-alpha.7 2023-10-07 15:53:49 +08:00
README.md feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
README.zh-CN.md feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
server.d.ts feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
server.js feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00

api-doc

English | 中文

Introduction

This plugin is based on swagger to write documentation.

How to access the documentation

  1. The access address in the plugin center is {domain}/admin/settings/api-doc/documentation
  2. The access address outside the plugin center is {domain}/api-documentation

How to write swagger documentation

The method in the plugin is the same

  1. src/swagger.{ts,json}
  2. src/swagger/index.{ts,json}

The file paths above can all be traversed to write documentation. Just export your written documentation by default. An example is shown below:

export default {
  info: {
    title: 'NocoBase API - Api-doc plugin',
  },
  tags: [],
  paths: {},
  components: {
    schemas: {}
  }
};

Usually, you only need to write info.title, tags, paths, and components. Other information such as server and info are merged into our base-swagger.

Base swagger includes the following code:

// base swagger
export default {
  openapi: '3.0.3',
  info: {
    title: 'NocoBase API documentation',
    description: '',
    contact: {
      url: 'https://github.com/nocobase/nocobase/issues',
    },
    license: {
      name: 'Core packages are Apache 2.0 & Plugins packages are AGPL 3.0 licensed.',
      url: 'https://github.com/nocobase/nocobase#license',
    },
  },
  externalDocs: {
    description: 'Find out more about NocoBase',
    url: 'https://docs.nocobase.com/',
  },
  components: {
    securitySchemes: {
      'api-key': {
        type: 'http',
        scheme: 'bearer',
      },
    },
  },
  security: [
    {
      'api-key': [],
    },
  ],
};

Note that configurations that can only be obtained at runtime, such as the server and version fields, are not filled in the base-swagger.

You can also override these defaults. When writing the swagger documentation for your plugin, you should consider whether your plugin's documentation can be accessed independently.

For detailed swagger writing rules, please refer to the official documentation.