openapi: 3.0.0 info: version: 1.0.0 title: Efront Account Plugin API description: Efront API Documentation servers: - url: https://virtserver.swaggerhub.com/Epignosis/Efront-API/1.0.0 description: SwaggerHub API Auto Mocking - url: https://ssc.efrontlearning.com/API/v1.0 security: - basicAuth: [] tags: - name: Plugin paths: /Plugins: get: tags: - Plugin description: Returns a list of the available plugins and their information. responses: '200': description: A JSON array of the plugins. content: application/json: schema: allOf: - type: object properties: data: type: array items: type: object properties: Name: type: string example: Plugin1 Title: type: string example: Plugin 1 Version: type: number format: float example: 1.0.0 - $ref: '#/components/schemas/standardResponse' '400': $ref: '#/components/responses/errorResponse' /Plugin/{pluginName}: get: tags: - Plugin description: Returns a list of the requested plugin and its information. parameters: - name: pluginName in: path required: true style: simple explode: false schema: type: string example: Demo responses: '200': description: A JSON array of the requested plugin. content: application/json: schema: allOf: - type: object properties: data: type: object properties: Name: type: string example: Demo Title: type: string example: Demo plugin Version: type: number format: float example: 1.0.0 - $ref: '#/components/schemas/standardResponse' '400': $ref: '#/components/responses/errorResponse' post: tags: - Plugin summary: Executes a callback method description: Returns the specified plugin's return value only if the plugin has the corresponding callback method implemented. parameters: - $ref: '#/components/parameters/pluginName' requestBody: required: false content: application/x-www-form-urlencoded: schema: type: object properties: anyProperty: description: Any payload you want to add to the specified plugin. anyOf: - type: string example: test - type: integer example: 5 - type: number example: '1.3' - type: array items: type: string - type: boolean example: true - type: object properties: parent value: type: array items: type: string example: value 1 responses: '200': description: A JSON array with the return value of the plugin. content: application/json: schema: allOf: - type: object properties: result: description: The plugin's return value. anyOf: - type: string example: 'I am Efront\Plugin\Demo\Model\DemoPlugin::onApiCall plugin. I will execute a POST method with these serialized data: { a:0:{} }' - type: integer example: 5 - type: number example: '1.3' - type: array items: type: string - type: boolean example: true - type: object properties: parent value: type: array items: type: string example: value 1 - $ref: '#/components/schemas/standardResponse' '400': $ref: '#/components/responses/errorResponse' components: parameters: pluginName: name: pluginName in: path required: true style: simple explode: false schema: type: string example: Demo responses: errorResponse: description: Bad request content: application/json: schema: allOf: - type: object properties: error: type: object properties: code: type: integer description: same as the response code minimum: 400 default: 400 message: type: string description: A message that points out that something went wrong. example: Not possible to get the requested resource information. reason: type: string nullable: true - $ref: '#/components/schemas/standardResponse' schemas: standardResponse: type: object properties: executionDuration: type: number format: float example: 0.5281 success: type: boolean enum: - true - false version: type: number format: float default: '1.0' securitySchemes: basicAuth: type: http scheme: basic