https://github.com/beyondjs/api-server
https://github.com/beyondjs/api-server
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/beyondjs/api-server
- Owner: beyondjs
- Created: 2024-06-20T14:54:47.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-14T15:57:27.000Z (over 1 year ago)
- Last Synced: 2025-08-26T16:28:02.081Z (10 months ago)
- Language: TypeScript
- Size: 41 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# @beyond-js/api-server
This package provides a dynamic HTTP API server implementation using Express.js. It is a server prepared to seamlessly
work with the BeyondJS framework, including support for hot module replacement (HMR) and OpenAPI specification
validation, allowing for efficient development and deployment of API services.
## Features
- **Express.js Integration**: Leverages the Express framework for building web applications.
- **OpenAPI Validation**: Integrates `express-openapi-validator` for API request and response validation based on
OpenAPI specs.
- **Hot Module Replacement (HMR)**: Supports HMR to handle changes in routes dynamically without restarting the
server.
- **Connection Management**: Manages active connections efficiently to ensure graceful server restarts and shutdowns.
## Installation
```bash
npm install @beyond-js/api-server
```
## Usage
### Basic Setup
```typescript
import { Server } from '@beyond-js/api-server';
const server = new Server();
server.start('@beyond-js/your-module');
```
### Module Structure
Your module should export the following structure:
```typescript
export const Routes: IRoutes = {
setup: (app: Express) => {
// Define your routes here
app.get('/example', (req: Request, res: Response) => {
res.send('Hello World!');
});
},
};
export const specs = './path-to-your-openapi-spec.yaml';
```
### Environment Variables
Ensure you have a `.env` file in your project root with the following configuration:
```
PORT=8080
```
### Custom Error Handling
You can customize error handling by overwriting the `_setErrorHandler` method.
## Contributing
Contributions are welcome! Please open an issue or submit a pull request on GitHub.
## License
This project is licensed under the MIT License.
## Acknowledgments
- [Express](https://expressjs.com/)
- [express-openapi-validator](https://github.com/cdimascio/express-openapi-validator)
- [dotenv](https://github.com/motdotla/dotenv)