Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ricvillagrana/74a1e47891444d53814d0a7885f7fa02 to your computer and use it in GitHub Desktop.
Save ricvillagrana/74a1e47891444d53814d0a7885f7fa02 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
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()/api/people/1
// '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