2 Работа с кэширующей версией API
4 Dmitry Samoshin aka gotty
9 ~~ Copyright (c) 2017-2020. Developed by Hedgecode.
11 ~~ Licensed under the Apache License, Version 2.0 (the "License");
12 ~~ you may not use this file except in compliance with the License.
13 ~~ You may obtain a copy of the License at
15 ~~ http://www.apache.org/licenses/LICENSE-2.0
17 ~~ Unless required by applicable law or agreed to in writing, software
18 ~~ distributed under the License is distributed on an "AS IS" BASIS,
19 ~~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 ~~ See the License for the specific language governing permissions and
21 ~~ limitations under the License.
23 ~~ NOTE: For help with the syntax of this file, see:
24 ~~ http://maven.apache.org/doxia/references/apt-format.html
26 Работа с кэширующей версией API
28 При первоначальном вызове API-метода для получения основного интерфейса библиотеки
31 SnookerScoreAPI api = Snooker.API();
34 мы по умолчанию имеем дело с кэширующей реализацией API-интерфейса <<<SnookerScoreAPI>>>.\
35 В чем же её преимущества?
39 Во-первых, при работе с кэширующей версией интерфейса при различных запросах вы получаете
40 более полный объём полезной информации. Например, при запросе текущих матчей в выборке будут
41 содержаться, помимо другой информации, ссылки на турнир (объект <<<Event>>>), а также на игроков,
42 участвующих в каждом матче (объекты <<<Player>>>):
45 SnookerScoreAPI api = Snooker.API();
46 OngoingMatches matches = api.getOngoingMatches();
47 for (OngoingMatch match : matches) {
48 Event event = match.event();
49 Player player1 = match.player1();
50 Player player2 = match.player2();
54 Тогда как при работе с некэширующей версией интерфейса вам придётся делать дополнительные запросы
55 о турнире и игроках, чтобы получить полную информацию о проходящих матчах:
58 SnookerScoreAPI api = Snooker.uncachedAPI();
59 OngoingMatches matches = api.getOngoingMatches();
60 for (OngoingMatch match : matches) {
61 Event event = api.getEvent(match.eventId());
62 Player player1 = api.getPlayer(match.player1Id());
63 Player player2 = api.getPlayer(match.player2Id());
69 Во-вторых, в кэширующей версии интерфейса вам предоставляется возможность задать текущий сезон,
70 с событиями которого в дальнейшем вы собираетесь работать путем запросов турниров и матчей:
73 SnookerScoreAPI api = Snooker.API();
74 api.setCurrentSeason(Season.getSeason(2015));
79 P.S. Если вам необходимо использовать некэширующую версию API-интерфейса,
80 то её можно получить следующим образом:
83 SnookerScoreAPI uncachedApi = Snooker.uncachedAPI();