robbyson-framework
TypeScript icon, indicating that this package has built-in type declarations

1.2.5 • Public • Published

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;
                internalApiGatewayUrlstring;
                externalApiGatewayUrlstring;
            };
            bodyParserConfig{
                urlEncode: {
                    limit: string;
                    extendedboolean;
                },
                json: {
                    limit: string;
                }
            };
            customMiddlewaresArray<(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.

Package Sidebar

Install

npm i robbyson-framework

Weekly Downloads

3

Version

1.2.5

License

ISC

Unpacked Size

417 kB

Total Files

168

Last publish

Collaborators

  • robbyson_user
  • geldoronie
  • phfernandes
  • rodolfovilaca