Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BoDonkey/9245d57caf04e666262e871277ef264a to your computer and use it in GitHub Desktop.
Save BoDonkey/9245d57caf04e666262e871277ef264a 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