mirror of
https://github.com/portainer/portainer.git
synced 2025-07-19 13:29:41 +02:00
* feat(api): introduce swagger * feat(api): anottate api * chore(api): tag endpoints * chore(api): remove tags * chore(api): add docs for oauth auth * chore(api): document create endpoint api * chore(api): document endpoint inspect and list * chore(api): document endpoint update and snapshots * docs(endpointgroups): document groups api * docs(auth): document auth api * chore(build): introduce a yarn script to build api docs * docs(api): document auth * docs(customtemplates): document customtemplates api * docs(tags): document api * docs(api): document the use of token * docs(dockerhub): document dockerhub api * docs(edgegroups): document edgegroups api * docs(edgejobs): document api * docs(edgestacks): doc api * docs(http/upload): add security * docs(api): document edge templates * docs(edge): document edge jobs * docs(endpointgroups): change description * docs(endpoints): document missing apis * docs(motd): doc api * docs(registries): doc api * docs(resourcecontrol): api doc * docs(role): add swagger docs * docs(settings): add swagger docs * docs(api/status): add swagger docs * docs(api/teammembership): add swagger docs * docs(api/teams): add swagger docs * docs(api/templates): add swagger docs * docs(api/users): add swagger docs * docs(api/webhooks): add swagger docs * docs(api/webscokets): add swagger docs * docs(api/stacks): swagger * docs(api): fix missing apis * docs(swagger): regen * chore(build): remove docs from build * docs(api): update tags * docs(api): document tags * docs(api): add description * docs(api): rename jwt token * docs(api): add info about types * docs(api): document types * docs(api): update request types annotation * docs(api): doc registry and resource control * chore(docs): add snippet * docs(api): add description to role * docs(api): add types for settings * docs(status): add types * style(swagger): remove documented code * docs(http/upload): update docs with types * docs(http/tags): add types * docs(api/custom_templates): add types * docs(api/teammembership): add types * docs(http/teams): add types * docs(http/stacks): add types * docs(edge): add types to edgestack * docs(http/teammembership): remove double returns * docs(api/user): add types * docs(http): fixes to make file built * chore(snippets): add scope to swagger snippet * chore(deps): install swag * chore(swagger): remove handler * docs(api): add description * docs(api): ignore docs folder * docs(api): add contributing guidelines * docs(api): cleanup handler * chore(deps): require swaggo * fix(auth): fix typo * fix(docs): make http ids pascal case * feat(edge): add ids to http handlers * fix(docs): add ids * fix(docs): show correct api version * chore(deps): remove swaggo dependency * chore(docs): add install script for swag
167 lines
4.7 KiB
Text
167 lines
4.7 KiB
Text
{
|
|
// Place your portainer workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
|
|
// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
|
|
// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
|
|
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
|
|
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
|
|
// Placeholders with the same ids are connected.
|
|
// Example:
|
|
// "Print to console": {
|
|
// "scope": "javascript,typescript",
|
|
// "prefix": "log",
|
|
// "body": [
|
|
// "console.log('$1');",
|
|
// "$2"
|
|
// ],
|
|
// "description": "Log output to console"
|
|
// }
|
|
"Component": {
|
|
"scope": "javascript",
|
|
"prefix": "mycomponent",
|
|
"description": "Dummy Angularjs Component",
|
|
"body": [
|
|
"import angular from 'angular';",
|
|
"import controller from './${TM_FILENAME_BASE}Controller'",
|
|
"",
|
|
"angular.module('portainer.${TM_DIRECTORY/.*\\/app\\/([^\\/]*)(\\/.*)?$/$1/}').component('$TM_FILENAME_BASE', {",
|
|
" templateUrl: './$TM_FILENAME_BASE.html',",
|
|
" controller,",
|
|
"});",
|
|
""
|
|
]
|
|
},
|
|
"Controller": {
|
|
"scope": "javascript",
|
|
"prefix": "mycontroller",
|
|
"body": [
|
|
"class ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/} {",
|
|
"\t/* @ngInject */",
|
|
"\tconstructor($0) {",
|
|
"\t}",
|
|
"}",
|
|
"",
|
|
"export default ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/};"
|
|
],
|
|
"description": "Dummy ES6+ controller"
|
|
},
|
|
"Service": {
|
|
"scope": "javascript",
|
|
"prefix": "myservice",
|
|
"description": "Dummy ES6+ service",
|
|
"body": [
|
|
"import angular from 'angular';",
|
|
"import PortainerError from 'Portainer/error';",
|
|
"",
|
|
"class $1 {",
|
|
" /* @ngInject */",
|
|
" constructor(\\$async, $0) {",
|
|
" this.\\$async = \\$async;",
|
|
"",
|
|
" this.getAsync = this.getAsync.bind(this);",
|
|
" this.getAllAsync = this.getAllAsync.bind(this);",
|
|
" this.createAsync = this.createAsync.bind(this);",
|
|
" this.updateAsync = this.updateAsync.bind(this);",
|
|
" this.deleteAsync = this.deleteAsync.bind(this);",
|
|
" }",
|
|
"",
|
|
" /**",
|
|
" * GET",
|
|
" */",
|
|
" async getAsync() {",
|
|
" try {",
|
|
"",
|
|
" } catch (err) {",
|
|
" throw new PortainerError('', err);",
|
|
" }",
|
|
" }",
|
|
"",
|
|
" async getAllAsync() {",
|
|
" try {",
|
|
"",
|
|
" } catch (err) {",
|
|
" throw new PortainerError('', err);",
|
|
" }",
|
|
" }",
|
|
"",
|
|
" get() {",
|
|
" if () {",
|
|
" return this.\\$async(this.getAsync);",
|
|
" }",
|
|
" return this.\\$async(this.getAllAsync);",
|
|
" }",
|
|
"",
|
|
" /**",
|
|
" * CREATE",
|
|
" */",
|
|
" async createAsync() {",
|
|
" try {",
|
|
"",
|
|
" } catch (err) {",
|
|
" throw new PortainerError('', err);",
|
|
" }",
|
|
" }",
|
|
"",
|
|
" create() {",
|
|
" return this.\\$async(this.createAsync);",
|
|
" }",
|
|
"",
|
|
" /**",
|
|
" * UPDATE",
|
|
" */",
|
|
" async updateAsync() {",
|
|
" try {",
|
|
"",
|
|
" } catch (err) {",
|
|
" throw new PortainerError('', err);",
|
|
" }",
|
|
" }",
|
|
"",
|
|
" update() {",
|
|
" return this.\\$async(this.updateAsync);",
|
|
" }",
|
|
"",
|
|
" /**",
|
|
" * DELETE",
|
|
" */",
|
|
" async deleteAsync() {",
|
|
" try {",
|
|
"",
|
|
" } catch (err) {",
|
|
" throw new PortainerError('', err);",
|
|
" }",
|
|
" }",
|
|
"",
|
|
" delete() {",
|
|
" return this.\\$async(this.deleteAsync);",
|
|
" }",
|
|
"}",
|
|
"",
|
|
"export default $1;",
|
|
"angular.module('portainer.${TM_DIRECTORY/.*\\/app\\/([^\\/]*)(\\/.*)?$/$1/}').service('$1', $1);"
|
|
]
|
|
},
|
|
"swagger-api-doc": {
|
|
"prefix": "swapi",
|
|
"scope": "go",
|
|
"description": "Snippet for a api doc",
|
|
"body": [
|
|
"// @id ",
|
|
"// @summary ",
|
|
"// @description ",
|
|
"// @description **Access policy**: ",
|
|
"// @tags ",
|
|
"// @security jwt",
|
|
"// @accept json",
|
|
"// @produce json",
|
|
"// @param id path int true \"identifier\"",
|
|
"// @param body body Object true \"details\"",
|
|
"// @success 200 {object} portainer. \"Success\"",
|
|
"// @success 204 \"Success\"",
|
|
"// @failure 400 \"Invalid request\"",
|
|
"// @failure 403 \"Permission denied\"",
|
|
"// @failure 404 \" not found\"",
|
|
"// @failure 500 \"Server error\"",
|
|
"// @router /{id} [get]"
|
|
]
|
|
}
|
|
}
|