1.0.1 • Published 3 years ago
exact-response v1.0.1
Exact Response
Its a simple graphql type alternative for any rest api.
Any query
contact me on Linkedin kundan kumar .
Installation
npm install exact-responseUsage
BY GET METHOD
http://localhost:4000/api?myCustomQry='name,email,address.city'
                         ORBY POST METHOD
http://localhost:4000/api
//pass your identifier in body and post it
body:{
"myCustomQry":"name,email,address"
}
                           ORBy 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.