Как вариант использовать graphql. У вас со стороны фронта будет полная схема моделей на сервере. Далее можно сделать путем согласованного именования сделать api на клиенте. К примеру, есть модель User и на неё есть стандартный набор методов (CRUD) и все query и mutation обозвать соответствующими именами.
User_create
User_find
User_update
User_remove.
Со стороны фронта создать парсер типов в объект и получить модель типа
...,
User:{
create(create_args){},
find(find_args){},
update(update_args){},
delete(delete_args){},
},
...