REST API Best Practice?
Best Practice как раз в том, чтобы проектировать слабосвязанные системы, а не навешивать на один эндпоинт кучу функций.
У нас используется следующий подход:
Есть основной ресурс, например /cats/1 в вашем случае. Есть дополнительные атрибуты: /cats/1/friends , /cats/1/wc. Если нужно получить множество атрибутов за раз, то используется GET параметр with: /cats/1?with=friends,wc. При этом если такой атрибут не может понадобиться отдельно от основного ресурса, то для него вообще не создается отдельный url, и он просто получается с помощью параметра with.
Это чем то похоже на GraphQL, но проще в реализации. Хотя если у вас множество типов с данных со сложными связями, возможно именно GraphQL подойдет вам лучше.