robbyson-framework
v1.2.5
Published
Generic framework for create robbyson style micro-service
Downloads
15
Readme
Robbyson Framework
Interfaces
- InterfaceApiServerConfiguration
- JSONResponse
- InterfaceBaseMongodbRepository
- InterfaceBaseMongodbService
- InterfaceBaseRestRepository
- InterfaceBaseController
- InterfaceBaseModel
- InterfaceBaseRepository
- InterfaceBaseService
Classes
- ApiServerBase (abstract)
- BaseMongodbController
- BaseMongodbRepository
- BaseMongodbService
- BaseRestRepository
- BaseController
- BaseModel
- BaseService
- Configuration
- ConfigurationParams
- IoC
Middlewares
- UseSwaggerMiddleware
Decorators
- Schema
- Property
Factories
- Schema Factory
InterfaceApiServerConfiguration
Used to specify the ApiServerBase
constructor param with requirements to build a fast standard robbyson Api Server.
Ex.
@Singleton
export class ApiServer extends ApiServerBase {
constructor() {
IoCRegister.defaultRegister();
super(/*InterfaceApiServerConfiguration*/{
databaseAccessConfig: any;
abstractFrameworkConfig: {
buildDir: string;
internalApiGatewayUrl: string;
externalApiGatewayUrl: string;
};
bodyParserConfig: {
urlEncode: {
limit: string;
extended: boolean;
},
json: {
limit: string;
}
};
customMiddlewares: Array<(req: Request, res: Response, next: NextFunction => void>;
serverContainer: any;
});
(...)
}
(...)
}
JSONResponse
Base definition to reponse output on services.
Sample Controller:
@Path('/')
export class SampleController extends BaseController {
protected sampleService: InterfaceSampleService = IoC.getInstance().getInstanceOf('SampleService');
constructor() {
super([
IoC.getInstance().getInstanceOf('SampleService')
]);
}
@GET
@Path('/')
public list(
@ContextRequest req: express.Request,
@QueryParam('$skip') $skip: number,
@QueryParam('$limit') $limit: number,
@QueryParam('$sort') $sort?: string,
@QueryParam('$fields') $fields?: string,
@QueryParam('$filter') $filter?: string,
@HeaderParam('x-contractor-id') contractor_id?: number,
@HeaderParam('x-robbyson-user') user?: string
): Promise<JSONResponse<Array<RobbysonBoilerplate>> | JSONResponse<JSONResponseErrorData>> {
return this.sampleService.list(contractor_id, $skip, $limit, $sort, $fields, $filter);
}
(...)
}
InterfaceBaseMongodbRepository
Used to define a base repository with mongodb tecnology. This interface is usualy implemented at on framework but can be used to implements a new repository, anyway is not recomended use InterfaceBaseRepository
.
InterfaceBaseMongodbService
Used to define a base service with mongodb tecnology. This interface is usualy implemented at on framework but can be used to implements a new service, anyway is not recomended, use InterfaceBaseService
.
InterfaceBaseRestRepository
Used to define a base repository with rest tecnology. This interface is usualy implemented at on framework but can be user to implements a new rest repository, anyway is not recomended, use InterfaceBaseRepository
.
InterfaceBaseController
Used to define a base controller with a full rest implementation with list
, get
, create
, delete
and update
.