Endpoint Library
API Cluster is free and open source Javascript library for organizing endpoint in efficient way.
Add multiple groups for versioning.
Quit messing with concatenation on URL with + operator.
Available in (Node) Server side and (browser) Client Side.
$ npm install --global apicluster
<script src="ApiCluster.js"></script>ApiCluster
// Default Group.
.defaults({
name: 'mydefault',
config: {
'employee': 'emp',
'details': 'details',
'timesheet': 'timesheet'
},
endpoints: {
"empDetails": "_employee_/_details_/:empId/profile"
}
});ApiCluster
// Default Group.
.defaults({
name: 'mydefault',
config: {
'employee': 'emp',
'details': 'details',
'timesheet': 'timesheet'
},
endpoints: {
"empDetails": "_employee_/_details_/:empId/profile"
}
})
.addAnother({
name: 'v1',
config: {
'employee': 'emp/v1',
'details': 'detailed',
'timesheet': 'timesheet'
},
endpoints: {
"empDetails": "_employee_/_details_/:empId/profile"
}
})
.addAnother({
name: 'v2',
config: {
'employee': 'emp/v2',
'details': 'detailed',
'timesheet': 'timesheet'
},
endpoints: {
"empDetails": "_employee_/_details_/:empId/profile"
}
});4. Get your dynamic Endpoint URL from the Configured Endpoint list from Default Group defined in defaults() method.
var empDetails = ApiCluster
.get('empDetails')
.arg({
'empId': 1000
})
.query({
'confirm': 'yes',
'testAccount': 'yes'
})
.url();Expected Output: emp/details/1000/profile?confirm=yes&testAccount=yes
var empDetails = ApiCluster
.use('v1')
.get('empDetails')
.arg({
'empId': 1000
})
.query({
'confirm': 'yes',
'testAccount': 'yes'
})
.url();Expected Output: emp/v1/detailed/1000/profile?confirm=yes&testAccount=yes
var http = require('http'),
ApiCluster = require('apicluster');
ApiCluster
// Default Group.
.defaults({
name: 'mydefault',
config: {
'employee': 'emp',
'details': 'details',
'timesheet': 'timesheet'
},
endpoints: {
"empDetails": "_employee_/_details_/:empId/profile"
}
});
//Lets define a port we want to listen to
const PORT = 9000;
// Function which handles requests and send response
function handleRequest(request, response) {
var empDetailURL = ApiCluster
.get('empDetails')
.arg({
'empId': 1000
})
.query({
'confirm': 'yes',
'testAccount': 'yes'
})
.url();
response.end('<h1>Generated Endpoint URL:<br> '
+ empDetailURL + '</h1>');
}
//Create a server
var server = http.createServer(handleRequest);
//Lets start our server
server.listen(PORT, function(){
// Callback triggered when server is successfully listening. Hurray!
console.log("Server listening on: http://localhost:%s", PORT);
});Anyone can help make this project better - check out the Contributing guide!


