T8 SDK Factory

Shorthand methods

The API schema keys can be mapped to custom method names:

let api = service.getEntry({
  getItems: "GET /items",
  getItem: "GET /items/:id",
  setItem: "POST /items/:id",
});

With such a mapping in place, service.send("GET /items/:id", { ... }) has another equivalent form:

let response = await api.getItem({
  params: {
    id: 10,
  },
  query: {
    mode: "full",
  },
});

The getEntry() method doesn't have to take all the API schema keys at once. The API methods can be split into logical scopes:

let api = {
  users: service.getEntry({
    getList: "GET /users",
    getInfo: "GET /users/:id",
  }),
  items: service.getEntry({
    getList: "GET /items",
    getInfo: "GET /items/:id",
    setInfo: "POST /items/:id",
  }),
};

let userList = await api.users.getList();
let firstUser = await api.users.getInfo({ params: { id: userList[0].id } });

For API methods controlled only with query parameters, there is also a shorthand option: the getQueryEntry() method, returning aliases accepting only query parameters, without the need to nest them into the query key.