* feat: api doc plugin * fix: merge * chore: upgrade swagger ui to latest * feat: get paths from recourser * feat: configure security * feat: add models * feat: reimplement resource action * feat: support render schemas correctly * feat: support load swagger documentation * refactor: implement `SwaggerManager` * fix: re import * feat: update info * refactor: do not use the cache strategy for the time being * feat: support collection builtin actions * fix: incorrect tag * feat: support different swagger json for different plugins * feat: support load server package * feat: support visit from plugin center * feat: add schemas for mapConfiguration * feat: update * fix: update tags * feat: support only render plugin that has swagger content * refactor: use swagger-ui-react instead of swagger-ui-dist * fix: clean * fix: reset * refactor: update plugin place * fix: revert * fix: remove version * fix: type error * feat: swagger doc * refactor: improve apis * feat: add doc * feat: support destination cache * fix: avoid authorization override * fix: auth bug * feat: update documentation * fix: typo * feat: support json * fix: key * fix: update yarn.lock * feat: update swagger doc * feat: swagger doc * docs: add auth swagger files (#2341) * docs: add auth swagger files * fix: yarn.lock * fix: skip core * feat: swagger doc * docs: improve auth docs * fix(theme-editor): avoid crashing * feat(theme-editor): improve api doc * docs: add localization-management swagger * docs(plugin-workflow): add api doc (#2379) * fix: remove files * fix: aaa * fix: dist * fix: load swagger * feat: acl api doc (#2494) * chore: acl api doc * feat: ui schema api doc * feat: multi apps api doc * chore: ui schema doc * feat: collection api doc * chore: association api doc * chore: single association doc * feat: move action doc * chore: list parameters * feat: update swagger doc * chore: collectionIndex to first * fix: test error * fix: ref * chore: doc tags * chore: template * chore: doc with association options * chore: single association doc * chore: relation type * chore: filter single association params * chore: m2m api doc * chore: params * fix: 0.12.0-alpha.5 * fix: update yarn.lock * chore: data wrap --------- Co-authored-by: chenos <chenlinxh@gmail.com> Co-authored-by: YANG QIA <2013xile@gmail.com> Co-authored-by: Rain <958414905@qq.com> Co-authored-by: Junyi <mytharcher@users.noreply.github.com> Co-authored-by: ChengLei Shao <chareice@live.com>
		
			
				
	
	
		
			110 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| export const createDefaultActionSwagger = ({ collection }) => {
 | |
|   const responses = {
 | |
|     default: {
 | |
|       content: {
 | |
|         'application/json': {
 | |
|           schema: {
 | |
|             $ref: `#/components/schemas/${collection.name}`,
 | |
|           },
 | |
|         },
 | |
|       },
 | |
|     },
 | |
|   };
 | |
|   const requestBody = {
 | |
|     content: {
 | |
|       'application/json': {
 | |
|         schema: {
 | |
|           $ref: `#/components/schemas/${collection.name}`,
 | |
|         },
 | |
|       },
 | |
|     },
 | |
|   };
 | |
|   return {
 | |
|     list: {
 | |
|       method: 'get',
 | |
|       responses,
 | |
|     },
 | |
|     create: {
 | |
|       method: 'post',
 | |
|       requestBody,
 | |
|     },
 | |
|     get: {
 | |
|       method: 'get',
 | |
|       responses,
 | |
|     },
 | |
|     update: {
 | |
|       method: 'put',
 | |
|       requestBody,
 | |
|       responses,
 | |
|     },
 | |
|     destroy: {
 | |
|       method: 'delete',
 | |
|       responses,
 | |
|     },
 | |
|     add: {
 | |
|       method: 'post',
 | |
|       requestBody,
 | |
|       responses,
 | |
|     },
 | |
|     set: {
 | |
|       method: 'post',
 | |
|       requestBody,
 | |
|     },
 | |
|     remove: {
 | |
|       method: 'delete',
 | |
|       responses,
 | |
|     },
 | |
|     toggle: {
 | |
|       method: 'post',
 | |
|       requestBody,
 | |
|       responses,
 | |
|     },
 | |
|     move: {
 | |
|       method: 'post',
 | |
|       requestBody,
 | |
|     },
 | |
|   };
 | |
| };
 | |
| 
 | |
| export const getInterfaceCollection = (options: Record<string, any>) => {
 | |
|   const accessors = {
 | |
|     // 常规 actions
 | |
|     list: 'list',
 | |
|     create: 'create',
 | |
|     get: 'get',
 | |
|     update: 'update',
 | |
|     delete: 'destroy',
 | |
|     // associate 操作
 | |
|     add: 'add',
 | |
|     set: 'set',
 | |
|     remove: 'remove',
 | |
|     toggle: 'toggle',
 | |
|     move: 'move',
 | |
|     ...(options.accessors || {}),
 | |
|   };
 | |
| 
 | |
|   const single = {
 | |
|     '/{resourceName}': [accessors.list, accessors.create, accessors.delete],
 | |
|     '/{resourceName}/{resourceIndex}': [accessors.get, accessors.update, accessors.delete],
 | |
|     '/{associatedName}/{associatedIndex}/{resourceName}': [
 | |
|       accessors.list,
 | |
|       accessors.create,
 | |
|       accessors.delete,
 | |
|       accessors.toggle,
 | |
|       accessors.add,
 | |
|       accessors.remove,
 | |
|     ],
 | |
|     '/{associatedName}/{associatedIndex}/{resourceName}/{resourceIndex}': [
 | |
|       accessors.get,
 | |
|       accessors.update,
 | |
|       accessors.delete,
 | |
|       accessors.remove,
 | |
|       accessors.toggle,
 | |
|       accessors.set,
 | |
|       accessors.move,
 | |
|     ],
 | |
|   };
 | |
| 
 | |
|   return single;
 | |
| };
 |