simple-api-router
v1.1.1
Published
A lightweight, flexible routing framework for building scalable and maintainable API infrastructures in JavaScript, with simple endpoint management and dynamic routing capabilities
Downloads
555
Maintainers
Readme
Simple API Router
A lightweight, flexible API
routing library for JavaScript
that provides a simple and extensible way to define and manage API Endpoints
.
Features
- Simple
API
andEndpoint
class structure - Easy route and method matching
- Flexible endpoint handler execution
- Supports dynamic API routing
Usage Example
This example is taken from a Full Working Example
Defining an API
import { Api, Endpoint } from 'simple-api-router';
const API = new Api("/api/");
API.addEndpoint(new Endpoint("time", "GET", (req, res) => {
return STATE.respondWithContent(res, Date.now().toString(), STATE.TEXT_HTML);
}));
const HTTPS_SERVER = createServerHTTPS(STATE.loadDefaultSecureContext(), (req, res) => {
if (API.checkFindExecute(req, res)) {
return;
}
...
})...
Calling an API
fetch("/api/time").then((response) => response.json().then((time) => console.log(time)));
API Classes
Api
Class
Constructor
new Api(apiRoute)
: Create a new API with a base route
Methods
addEndpoint(endpoint)
: Add an endpoint to the APIcheckRoute(url)
: Check if a URL matches the API's base routefindEndpoint(endpointPath)
: Find an endpoint matching a given pathfindEndpointCheckMethod(req)
: Find an endpoint and verify its HTTP methodcheckFindExecute(req, res)
: Attempt to execute the handler for a matching endpoint
Endpoint
Class
Constructor
new Endpoint(path, method, handler)
: Create a new endpoint
Methods
checkMethod(method)
: Verify the HTTP methodexecuteHandler(req, res)
: Execute the endpoint's handlerexecuteHandlerArgs(req, res, ...args)
: Execute the handler with additional arguments
Key Concepts
- The
Api
class manages a collection of endpoints for a specific route prefix Endpoint
instances define specific path, HTTP method, and handler combinationscheckFindExecute
method provides a convenient way to route and handle requests