Exact Response
Its a simple graphql type alternative for any rest api.
Any query
contact me on Linkedin kundan kumar .
Installation
npm install exact-response
Usage
BY GET METHOD
http://localhost:4000/api?myCustomQry='name,email,address.city'
OR
BY POST METHOD
http://localhost:4000/api
//pass your identifier in body and post it
body:{
"myCustomQry":"name,email,address"
}
OR
By Custom header
//If you don't want show query in url you can also set header
axios.get('https://example.com/getSomething', {
headers: {
"myCustomQry":"name,email,address"
}
})
import {exactResponse, exactData} from 'exact-response'
routes.get('/',(req:Request,res:Response,next:NextFunction)=>{
try{
let data=[
{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@april.biz",
"address": {
"street": "Kulas Light",
"city": "Gwenborough",
}
},
{
"id": 2,
"name": "Ervin Howell",
"username": "Antonette",
"email": "Shanna@melissa.tv",
"address": {
"street": "Victor Plains",
"city": "Wisokyburgh"
}
}]
return res.json(exactResponse(req,data,'myCustomQry'));
/**
it will return data what you exactly want
Nothing more nothing less
[{
"name": "Leanne Graham",
"username": "Bret",
"address": {
"city": "Gwenborough",
}
},
{
"name": "Ervin Howell",
"username": "Antonette",
"address": {
"city": "Wisokyburgh"
}
}] **/
}catch(err){
next(err);
})
//response with any data
import {exactResponse, exactData} from 'exact-response'
let data=[
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
},
{
"userId": 1,
"id": 2,
"title": "quis ut nam facilis et officia qui",
"completed": false
},
{
"userId": 1,
"id": 3,
"title": "fugiat veniam minus",
"completed": false
}
];
let qry="id,title";
console.log(exactData(qry,data))
/* It will return which you needed
[
{
"id": 1,
"title": "delectus aut autem"
},
{
"id": 2,
"title": "quis ut nam facilis et officia qui",
},
{
"id": 3,
"title": "fugiat veniam minus",
}
];
*/
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.