У меня, вероятно, было бы 2 метода, один для возврата Collection
и один, чтобы вернуть коллекцию как Stream
.
class Team
{
private List<Player> players = new ArrayList<>();
// ...
public List<Player> getPlayers()
{
return Collections.unmodifiableList(players);
}
public Stream<Player> getPlayerStream()
{
return players.stream();
}
}
Это лучшее из обоих миров. Клиент может выбрать, хотят ли они List или Stream, и им не нужно делать дополнительное создание объекта для создания неизменяемой копии списка, чтобы получить Stream.
Это также добавляет только 1 больше метода для вашего API, поэтому у вас не слишком много методов
Если это для разных страниц, нет способа.
Я использую эту же страницу, вы можете использовать ее и использовать пейджинг, чтобы получить все 700 записей всего за 7 вызовов API:
/page-id/posts?fields={fields}&limit=100
Конечно, вы получите ВСЕ сообщения таким образом. Нет способа получить его для массива случайных идентификаторов сообщений.
?ids=1,2,3
работает для этого, и какая страница, из которой они сделаны, не имеет значения в этом отношении. (Если бы используемый токен доступа разрешал доступ ко всем, это был бы другой вопрос.) Но если основная цель - избежать ограничений скорости, это не поможет вообще в этом отношении. – CBroe 13 July 2018 в 13:07