jetql
v1.0.0
Published
<img src="https://raw.githubusercontent.com/sammwyy/jetql/master/demo/icon.png" align="right" height="150px"> <h1>🚀 JetQL</h1> <p>JetQL is a query language for the implementation of Rest APIs on both the server and the client. JetQL also comes with a fro
Downloads
2
Readme
JetQL Features:
- 🧹 Clean Sintaxis.
- 🔗 Compatble with POST, PUT, DELETE and GET Requests.
- 🚀 Fast and Lightweight.
- 🙏 Express.js compatible.
How does this work?
The body has this format:
{
"action": "get/delete/add/update/edit/list",
"route": "...",
"props": {},
"args": {}
}
And the url (in case of being GET) has this format:http://example.com/api/<route>/<action>/<props>/<args>
Get started with JetQL
Implementation with express:
const express = require("express");
const JetQL = require("jetql");
const app = express();
const jetql = JetQL.Server();
app.use(express.json());
app.use(jetql.express());
app.listen(3000);
Implementation in the frontend:
(Import the script file)
<script src="@jetql.js">
(Send a request)
<button onclick="sendRequest()">Send request</button>
<script>
async function sendRequest () {
let data = await jetql("user").get({
username: "sammwy"
});
if (data.success) {
alert("Username exists! and her value is " + data.result);
} else {
alert(data.error);
}
}
</script>
Test route in backend:
jetql.addRoute({
action: "get",
route: "user",
callback: function (query) {
if (query.props.username == "sammwy")
query.finish(18);
else
query.drop("User isn't exists");
}
});
Examples
Add a route (Method #1):
jetql.addRoute({
action: "get",
route: "user",
callback: (query) => {
console.log(query);
}
});
Add a route (Method #2):
jetql.addRoute("add", "user", (query) => {
console.log(query);
});
Add external route:
// index.js
jetql.use(require("./external.js"));
// external.js
const JetQL = require('jetql');
const router = JetQL.Router();
router.addRoute({ ... });
router.addRoute({ ... });
router.addRoute({ ... });
module.exports = router;
Demo
Try jetql with the demo project.
- Clone the repository
- Use node ./jetql.test.js in the folder.
- Open https://127.0.0.1:4000/
Methods
End the request with a successful result:
query.finish(result);
End the request with a 404 error and a message:
query.drop(message);
The request ends with a 500 error and a message:
query.error(message);
Get the client's request:
query.request;
Get the response to the client:
query.response;
Add a router object and all its routes to the JetQL instance:
jetql.use(router);
Add a route to the jetql instance:
jetql.addRoute({action: ..., route: ..., callback: () => { ... } });
Add a route to the jetql instance:
jetql.addRoute(action, routeName, callback);
Gets the express middleware:
jetql.express();
Gets the http middleware:
jetql.http();
Instantiate jetql:
jetql.Server();