Ну, у нас все сервисы на Java и если сервис предоставляет какой-то апи для других сервисов, то мы делаем в рамках сервиса Java SDK. Но у нас также фронт и мобилка может нашими апи пользоваться, или в каких-то случаях тех.поддержка или тестировщики могут ручки в постамане подергать. Поэтому, полность абстрагироваться от представления не получится.
Так вопрос генерации/написания клиентских либ к дизайну самого api особого отношения не имеет. Тут же речь за дизайн шла, а не за то, как потом либы делать
Дизайн апи - это не только про схему путей, это не самая большая и не самая сложная часть. Более интересные моменты - как работать с фильтрацией, пагинацией, сортировками. Еще интереснее - батчи, транзакции, асинхронные операции и т.п.
Зависит от потребностей. Я в целом стараюсь не тащить транзакции на уровень апи. Ну и транзакции - не в смысле транзакций БД, а в смысле бизнес-транзакций, конечно.
У тебя в этом клиенте - какие методы будут? Проблема же именно в этом. Не важно, рисовать API для этой библиотеки или API для межсервисного взаимодействия, все равно нужно его продумывать. И это сложно (