example:
app.use( swagger.express(
{
definition : {
...
securityDefinitions : {
basicAuth : {
type : SwaggerDefinitionConstant.Security.Type.BASIC_AUTHENTICATION
},
apiKeyHeader : {
type: SwaggerDefinitionConstant.Security.Type.API_KEY,
in: SwaggerDefinitionConstant.Security.In.HEADER,
name: "apiHeader"
}
}
}
}
) );
Example:
...
@ApiOperationGet( {
...
security : {
basicAuth : []
}
} )
...
Example:
...
@ApiOperationGet( {
...
security : {
apiKeyHeader : []
}
} )
...
Example in path:
...
@ApiPath( {
...
deprecated: true
} )
...
Example in operation:
...
@ApiOperationGet( {
...
deprecated: true
} )
...
Example:
app.use( swagger.express(
{
definition : {
info : {
title : "My api" ,
version : "1.0"
} ,
models : {
Version : {
properties : {
id : {
type : SwaggerDefinitionConstant.Model.Property.Type.STRING ,
required : true
} ,
name : {
type : SwaggerDefinitionConstant.Model.Property.Type.STRING ,
required : true
} ,
description : {
type : SwaggerDefinitionConstant.Model.Property.Type.STRING
} ,
version : {
type : SwaggerDefinitionConstant.Model.Property.Type.STRING
}
}
}
} ,
externalDocs : {
url : "My url"
}
}
}
) );
Add keywords for npm.
Complete informations.
Complete informations.
Complete informations.
Example:
app.use( swagger.express(
{
definition : {
setInfo : {
title : "My api",
version : "1.0"
},
models : {
Version : {
properties : {
id : {
type : SwaggerDefinitionConstant.Definition.Property.Type.STRING,
required : true
},
name : {
type : SwaggerDefinitionConstant.Definition.Property.Type.STRING,
required : true
},
description : {
type : SwaggerDefinitionConstant.Definition.Property.Type.STRING
},
version : {
type : SwaggerDefinitionConstant.Definition.Property.Type.STRING
}
}
}
}
}
}
) );
Example:
import { injectable } from "inversify";
import "reflect-metadata";
import { ApiPath } from "swagger-express-ts";
import { controller } from "inversify-express-utils";
@ApiPath( {
path : "/version",
name : "Version"
} )
@controller( "/version" )
@injectable()
export class VersionController implements interfaces.Controller {
public static TARGET_NAME: string = "VersionController";
}
Example:
import * as express from "express";
import { injectable } from "inversify";
import { controller, interfaces, requestParam, httpDelete } from "inversify-express-utils";
import { ApiPath, ApiOperationDelete, SwaggerDefinitionConstant } from "swagger-express-ts";
import "reflect-metadata";
@ApiPath( {
path : "/versions",
name : "Version"
} )
@controller( "/versions" )
@injectable()
export class VersionController implements interfaces.Controller {
public static TARGET_NAME: string = "VersionController";
private data: [any] = [
{
id : "1",
name : "Version 1",
description : "Description Version 1",
version : "1.0.0"
},
{
id : "2",
name : "Version 2",
description : "Description Version 2",
version : "2.0.0"
}
];
@ApiOperationDelete( {
path : "/{id}",
parameters : {
path : {
id : {
description : "Id of version",
type : SwaggerDefinitionConstant.Parameter.Type.STRING,
required : true
}
}
},
responses : {
200 : { description: "Success" }
}
} )
@httpDelete( "/:id" )
public deleteVersion( @requestParam( "id" ) id: string, request: express.Request, response: express.Response, next: express.NextFunction ): void {
this.data.forEach( ( version: any, index: number )=> {
if ( version.id === id ) {
this.data.splice(index, 1);
return response.status(200).end();
}
} );
response.status( 404 ).end();
}
}
Decorate method for getting a resource in your controller.
Example:
import * as express from "express";
import { injectable } from "inversify";
import { controller, interfaces, requestParam, httpGet } from "inversify-express-utils";
import { ApiPath, ApiOperationGet, SwaggerDefinitionConstant } from "swagger-express-ts";
import "reflect-metadata";
@ApiPath( {
path : "/versions",
name : "Version"
} )
@controller( "/versions" )
@injectable()
export class VersionController implements interfaces.Controller {
public static TARGET_NAME: string = "VersionController";
private data: [any] = [
{
id : "1",
name : "Version 1",
description : "Description Version 1",
version : "1.0.0"
},
{
id : "2",
name : "Version 2",
description : "Description Version 2",
version : "2.0.0"
}
];
@ApiOperationGet( {
description : "Get version object",
summary : "Get version",
responses : {
200 : { description : "Success", isArray : true, model : "Version" }
}
} )
@httpGet( "/" )
public getVersions( request: express.Request, response: express.Response, next: express.NextFunction ): void {
response.json( this.data );
}
}
Decorate method for updating a field of resource in your controller.
Example:
import * as express from "express";
import { injectable } from "inversify";
import { controller, interfaces, requestParam, httpPatch } from "inversify-express-utils";
import { ApiPath, ApiOperationPatch, SwaggerDefinitionConstant } from "swagger-express-ts";
import "reflect-metadata";
@ApiPath( {
path : "/versions",
name : "Version"
} )
@controller( "/versions" )
@injectable()
export class VersionController implements interfaces.Controller {
public static TARGET_NAME: string = "VersionController";
private data: [any] = [
{
id : "1",
name : "Version 1",
description : "Description Version 1",
version : "1.0.0"
},
{
id : "2",
name : "Version 2",
description : "Description Version 2",
version : "2.0.0"
}
];
@ApiOperationPatch( {
path : "/{id}/description",
description : "Patch description in version object",
summary : "Patch description in version",
parameters : {
path: {
id: {
description : "Id of version",
type : SwaggerDefinitionConstant.Parameter.Type.STRING,
required : true
}
},
body : { description : "New version", required : true, model : "Version" }
},
responses : {
200 : { description : "Success" },
400 : { description : "Parameters fail" },
404 : { description : "Version not found" }
}
} )
@httpPatch( "/:id/description" )
public patchVersionDescription( @requestParam( "id" ) id: string, request: express.Request, response: express.Response, next: express.NextFunction ): void {
if ( ! request.body ) {
return response.status( 400 ).end();
}
this.data.forEach( ( version: any )=> {
if ( version.id === id ) {
version.description = request.body.description;
return response.json( version );
}
} );
response.status( 404 ).end();
}
}
Decorate method for create a resource in your controller.
Example:
import * as express from "express";
import { injectable } from "inversify";
import { controller, interfaces, requestParam, httpPost } from "inversify-express-utils";
import { ApiPath, ApiOperationPost, SwaggerDefinitionConstant } from "swagger-express-ts";
import "reflect-metadata";
@ApiPath( {
path : "/versions",
name : "Version"
} )
@controller( "/versions" )
@injectable()
export class VersionController implements interfaces.Controller {
public static TARGET_NAME: string = "VersionController";
private data: [any] = [
{
id : "1",
name : "Version 1",
description : "Description Version 1",
version : "1.0.0"
},
{
id : "2",
name : "Version 2",
description : "Description Version 2",
version : "2.0.0"
}
];
@ApiOperationPost( {
description : "Post version object",
summary : "Post new version",
parameters : {
body : { description : "New version", required : true, model : "Version" }
},
responses : {
200 : { description : "Success" },
400 : { description : "Parameters fail" }
}
} )
@httpPost( "/" )
public postVersion( request: express.Request, response: express.Response, next: express.NextFunction ): void {
if ( ! request.body ) {
return response.status( 400 ).end();
}
this.data.push( request.body );
response.json( request.body );
}
}
Decorate method for updating a resource in your controller.
Example:
import * as express from "express";
import { injectable } from "inversify";
import { controller, interfaces, requestParam, httpPut } from "inversify-express-utils";
import { ApiPath, ApiOperationPut, SwaggerDefinitionConstant } from "swagger-express-ts";
import "reflect-metadata";
@ApiPath( {
path : "/versions",
name : "Version"
} )
@controller( "/versions" )
@injectable()
export class VersionController implements interfaces.Controller {
public static TARGET_NAME: string = "VersionController";
private data: [any] = [
{
id : "1",
name : "Version 1",
description : "Description Version 1",
version : "1.0.0"
},
{
id : "2",
name : "Version 2",
description : "Description Version 2",
version : "2.0.0"
}
];
@ApiOperationPut( {
path : "/{id}",
parameters : {
path : {
id : {
description : "Id of version",
type : SwaggerDefinitionConstant.Parameter.Type.STRING,
required : true
}
},
body : {
description : "Updated version",
model : "Version",
required : true
}
},
responses : {
200 : { model : "Version" }
}
} )
@httpPut( "/:id" )
public putVersion( @requestParam( "id" ) id: string, request: express.Request, response: express.Response, next: express.NextFunction ): void {
if ( ! request.body ) {
return response.status( 400 ).end();
}
this.data.forEach( ( version: any, index: number )=> {
if ( version.id === id ) {
let newVersion = request.body;
version.id = newVersion.id;
version.name = newVersion.name;
version.description = newVersion.description;
version.version = newVersion.version;
this.data[ index ] = version;
return response.json( version );
}
} );
response.status( 404 ).end();
}
}