Using a javascript proxy as low code REST client
https://gist.github.com/DavidWells/53518b3c12344952641dc81cc7599939
/* 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
// and https://gist.github.com/v1vendi/75d5e5dad7a2d1ef3fcb48234e4528cb
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