3.0.8 • Published 5 months ago

@vincent_su/microservice v3.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

CreateService REST API Framework

This project provides a highly customizable framework for creating a service that integrates REST APIs, and real-time data handling using Express.js and other dependencies. The framework allows for the dynamic creation of services, data streams, and stores, and also supports channel-based WebSocket communication.

Features

  • Express-based REST API with dynamic route handling
  • Real-time data streaming via channels with database/store integration
  • Job scheduling with customizable loop intervals and error handling
  • Dynamic service integration via got for HTTP requests, MongoDB stores, and streams
  • Custom logging with console-based logs
  • Middleware support (API key validation, service ID validation, etc.)

Installation

  1. Clone the repository:

    git clone https://github.com/your-repo/create-service.git
    cd create-service
  2. Install dependencies:

    npm install
  3. Setup environment: Ensure you have your database connections and any required services running. Update the connection details in db_store.js and db_stream.js if needed.

Usage

To create a new service, use the CreateService function and pass in the necessary configuration options.

Example

import { CreateService } from './index.js';

const service = CreateService({
  port: 3000,
  appName: 'myApp',
  serviceName: 'myService',
  containerName: 'myContainer',
});

service.addRoute('get', '/hello', (req, res) => {
  res.json({ message: 'Hello, World!' });
});

service.onCommand((command) => {
  console.log(`Received command: ${command}`);
});

Middleware Example

You can use built-in or custom middleware for validating API keys, service IDs, etc.

service.use(service.MIDDLEWARES.validateApiKey);
service.use(service.MIDDLEWARES.validateServiceID);

Available Functions

  • CreateService: Main function to create and configure the service.
  • startJob: Starts a scheduled job with configurable intervals and error handling.
  • addRoute: Add routes for handling HTTP methods like GET, POST, PUT, etc.
  • setupChannel: Configure WebSocket channels for data streaming or store watching.
  • getService: Create or get an existing service for making HTTP requests.
  • getStore: Set up a database store connection.
  • getStream: Set up a database stream for real-time data updates.
  • onCommand: Handle custom commands sent through WebSocket.

Dependencies

  • Express.js
  • Helmet for security
  • Got for HTTP requests
  • Custom modules for database logging, stores, and streams (db_logger, db_store, db_stream)

License

This project is licensed under the MIT License.

3.0.8

5 months ago

3.0.7

5 months ago

3.0.6

5 months ago

3.0.5

5 months ago

3.0.4

5 months ago

3.0.3

5 months ago

3.0.2

5 months ago

3.0.1

5 months ago

3.0.0

5 months ago

2.8.2

8 months ago

2.8.1

9 months ago

2.7.5

10 months ago

2.7.4

11 months ago

2.7.3

11 months ago

2.7.2

11 months ago

2.7.1

11 months ago

2.7.0

11 months ago

2.6.9

11 months ago

2.6.8

11 months ago

2.6.7

11 months ago

2.6.6

11 months ago

2.6.5

11 months ago

2.6.4

11 months ago

2.6.3

11 months ago

2.6.2

11 months ago

2.6.1

11 months ago

2.5.8

11 months ago

2.5.7

11 months ago

2.5.5

11 months ago

2.5.4

11 months ago

2.5.3

11 months ago

2.5.2

11 months ago

2.5.1

11 months ago

2.4.8

11 months ago

2.4.7

11 months ago

2.4.6

11 months ago

2.4.5

11 months ago

2.4.4

11 months ago

2.4.3

11 months ago

2.4.2

12 months ago

2.4.1

12 months ago

2.3.11

12 months ago

2.3.10

12 months ago

2.3.9

12 months ago

2.3.8

12 months ago

2.3.7

12 months ago

2.3.6

12 months ago

2.3.5

12 months ago

2.3.4

12 months ago

2.3.3

12 months ago

2.3.2

12 months ago

2.3.1

12 months ago

2.2.11

12 months ago

2.2.10

12 months ago

2.2.9

12 months ago

2.2.8

12 months ago

2.2.7

12 months ago

2.2.6

12 months ago

2.2.5

12 months ago

2.2.4

12 months ago

2.2.3

12 months ago

2.2.2

12 months ago

2.2.1

12 months ago

2.2.0

12 months ago

2.1.14

12 months ago

2.1.13

12 months ago

2.1.12

12 months ago

2.1.11

12 months ago

2.1.10

12 months ago

2.1.9

12 months ago

2.1.8

12 months ago

2.1.7

12 months ago

2.1.6

1 year ago

2.1.5

1 year ago

2.1.4

1 year ago

2.1.3

1 year ago

2.1.2

1 year ago

2.1.1

1 year ago

2.1.0

1 year ago

2.0.21

1 year ago

2.0.20

1 year ago

2.0.19

1 year ago

2.0.18

1 year ago

2.0.17

1 year ago

2.0.16

1 year ago

2.0.15

1 year ago

2.0.14

1 year ago

2.0.13

1 year ago

2.0.12

1 year ago

2.0.11

1 year ago

2.0.10

1 year ago

2.0.9

1 year ago

2.0.8

1 year ago

2.0.7

1 year ago

2.0.6

1 year ago

2.0.5

1 year ago

2.0.4

1 year ago

2.0.3

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.3.3

1 year ago

1.3.2

1 year ago

1.3.1

1 year ago

1.2.22

1 year ago

1.2.21

1 year ago

1.2.20

1 year ago

1.2.19

1 year ago

1.2.18

1 year ago

1.2.17

1 year ago

1.2.16

1 year ago

1.2.15

1 year ago

1.2.14

1 year ago

1.2.13

1 year ago

1.2.12

1 year ago

1.2.11

1 year ago

1.2.10

1 year ago

1.2.9

1 year ago

1.2.8

1 year ago

1.2.7

1 year ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.4

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago

1.2.1

1 year ago

1.1.29

1 year ago

1.1.28

1 year ago

1.1.27

1 year ago

1.1.26

1 year ago

1.1.24

1 year ago

1.1.23

1 year ago

1.1.22

1 year ago

1.1.21

1 year ago

1.1.20

1 year ago

1.1.19

1 year ago

1.1.18

1 year ago

1.1.17

1 year ago

1.1.16

1 year ago

1.1.14

1 year ago

1.1.13

1 year ago

1.1.12

1 year ago

1.1.10

1 year ago

1.1.9

1 year ago

1.1.8

1 year ago

1.1.7

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.34

1 year ago

1.0.33

1 year ago

1.0.32

1 year ago

1.0.31

1 year ago

1.0.30

1 year ago

1.0.29

1 year ago

1.0.28

1 year ago

1.0.27

1 year ago

1.0.26

1 year ago

1.0.25

1 year ago

1.0.24

1 year ago

1.0.23

1 year ago

1.0.22

1 year ago

1.0.21

1 year ago

1.0.20

1 year ago

1.0.19

1 year ago

1.0.18

1 year ago

1.0.17

1 year ago

1.0.16

1 year ago

1.0.15

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

1.0.11

1 year ago

1.0.10

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago