Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ndrean/c1326ed5919f0c6a844b5e5483181cfa to your computer and use it in GitHub Desktop.
Save ndrean/c1326ed5919f0c6a844b5e5483181cfa to your computer and use it in GitHub Desktop.
Using a javascript proxy as low code REST client
/* Using a JavaScript proxy for a super low code REST client */
// via https://dev.to/dipsaus9/javascript-lets-create-aproxy-19hg
// also see https://towardsdatascience.com/why-to-use-javascript-proxy-5cdc69d943e3
// also see https://github.com/fastify/manifetch
// also see https://github.com/flash-oss/allserver
const createApi = (url) => {
return new Proxy({}, {
get(target, key) {
return async function(id = "") {
const response = await fetch(`${url}/${key}/${id}`)
if (response.ok) {
return response.json();
}
return Promise.resolve({ error: "Malformed Request" })
}
}
})
}
let api = createApi("https://swapi.co/api")
// 'get' request to https://swapi.co/api/people
let people = await api.people()
// 'get' request to https://swapi.co/api/people/1
let person = await api.people(1)
// ... any https://swapi.dev/ endpoint
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment