0.0.16 • Published 2 years ago

queriest v0.0.16

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Queriest

Make an API of APIs!

Purpose

Reduce calls to exterior APIs by caching data and re-rerouting.

How to Works

Wraps an existing API with an API that can cache data.

Pattern ( find-request)

First try to find data locally, if unavailable make an api call.

  • setup queries, with parameters
  • run queries, retrieve and cache data
  • build route to access data

Usage

see example.

Data is cached by type in ./data directory. Default timeout is 1 day.

Example

const { buildAPI, startAPI } = require('queriest')

let params = {}
// the route this api will post data on
// params.route = "/"

// create an alias for `type` argument on incoming query
params.type_alias = "kitten"

// parses incoming query and returns an outgoing query
const build_cat_query = incoming_query => {

    // NOTE! must have `type` as an argument of incoming query or have type set statically with `params` ...

    // http://localhost/?type=fact
    if(incoming_query.type === "fact")  return `https://catfact.ninja/fact`


    // ... or have an alias set in the `params`
    // http://localhost/?kitten=facts
    if(incoming_query.kitten === "facts")  return `https://catfact.ninja/facts`
     
    // can clear the data by returning 'clear'
    // http://localhost/?clear=facts
    if(incoming_query.clear === "facts") return 'clear'
    
}

buildAPI(params, build_cat_query, data => {
    if(data) {
        console.log(data)
        return data
    }
})
startAPI()

Test

node test

Navigate to http://localhost/?message=hello

Todo

  • multiple routes on api
  • use promise instead of callback
  • document functions
0.0.11

2 years ago

0.0.12

2 years ago

0.0.13

2 years ago

0.0.14

2 years ago

0.0.15

2 years ago

0.0.16

2 years ago

0.0.1

2 years ago