Это действительно сводится к дизайнерскому решению - что вы собираетесь показать пользователям?
- Список всех тем и список текущей подписки
- Все темы и, если у пользователя есть подписка.
Если 1, вы хотите просмотр результатов ...
var resultView = new TwoResultViews(avaiableTopics, subscriptionTopics);
возвращает
"res": {
"availableTopics":
[
{
"topic": "topic1",
}
],
"subscribedTopics":
[
{
"topic": "anotherTopic"
}
]
}
или если 2
var resultView = new SingleResultView(availableTopics, susbcrtiptionTopics);
возвращает
[
{
"topic": "topic1",
"subscribed": true
}
],
В любом случае, вы нужно 1 вызов API, если нет очевидных (и ответственных - иначе говоря, производительности) причин для его оптимизации.