Под роликом мне написали комментарий `
orval получше, чем
apicraft будет`
Еще очень давно я смотрел в сторону
Orval, но тогда генерация казалась мне сырой. Я буквально не мог нормально использовать функции библиотек с их генерацией. Сейчас решил снова зайти в документацию и, честно, стало намного лучше. Но всё еще не идеально.
export const listPets = async (
params?: ListPetsParams,
options?: RequestInit,
): Promise<listPetsResponse> => {
const res = await fetch(getListPetsUrl(params), {
...options,
method: 'GET',
});
const data = await res.json();
return { status: res.status, data };
};Главная проблема для меня в том, что библиотека генерирует не примитивы, а уже захардкоженные функции под конкретный сценарий. Хотите получить headers — идите править код или шаблон генерации. У вас не
JSON, а
buffer/blob/stream — снова правьте код. Нужна своя обертка, свой формат ошибок, свой response shape — опять настройки, override и шаблоны.
При этом я не хочу сказать, что Orval плохой. TanStack-плагины, faker, overrides и общая настройка стали сильно лучше. Это уже вполне рабочий инструмент, который многим закроет задачу.
Я всё еще думаю, что генератор API-клиента должен в первую очередь давать базовые и максимально гибкие вещи. Настройка клиента должна быть простой, конфигурить можно несколько опенапи сразу в одном конфиге, у итоговых функцией не должно быть ограничений.
Поэтому комментарий лично меня не убедил, apicraft просто в разы лучше во многих аспектах, но точно хуже в одном, а именно документация. Я думаю нужно с этим что-то делать.