@vincent_su/microservice v3.0.8
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
Clone the repository:
git clone https://github.com/your-repo/create-service.git cd create-service
Install dependencies:
npm install
Setup environment: Ensure you have your database connections and any required services running. Update the connection details in
db_store.js
anddb_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.
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
8 months ago
9 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago