[LIB-5] Site sources of snooker-score-api
[snooker-score-api.git] / src / site / ru / apt / examples / work-with-the-cached-api.apt.vm
1  ------
2  Работа с кэширующей версией API
3  ------
4  Dmitry Samoshin aka gotty
5  ------
6  2017-01-27
7  ------
8
9 ~~ Copyright (c) 2017. Developed by Hedgecode.
10 ~~
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
14 ~~
15 ~~   http://www.apache.org/licenses/LICENSE-2.0
16 ~~
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.
22
23 ~~ NOTE: For help with the syntax of this file, see:
24 ~~ http://maven.apache.org/doxia/references/apt-format.html
25
26 Работа с кэширующей версией API
27
28   При первоначальном вызове API-метода для получения основного интерфейса библиотеки
29
30 +-------
31 SnookerScoreAPI api = Snooker.API();
32 +-------
33
34   мы по умолчанию имеем дело с кэширующей реализацией API-интерфейса <<<SnookerScoreAPI>>>.\
35   В чем же её преимущества?
36
37 ===
38
39   Во-первых, при работе с кэширующей версией интерфейса при различных запросах вы получаете 
40   более полный объём полезной информации. Например, при запросе текущих матчей в выборке будут 
41   содержаться, помимо другой информации, ссылки на турнир (объект <<<Event>>>), а также на игроков,
42   участвующих в каждом матче (объекты <<<Player>>>):
43
44 +-------
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();
51 }
52 +-------
53
54   Тогда как при работе с некэширующей версией интерфейса вам придётся делать дополнительные запросы
55   о турнире и игроках, чтобы получить полную информацию о проходящих матчах:
56
57 +-------
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());
64 }
65 +-------
66
67 ===
68
69   Во-вторых, в кэширующей версии интерфейса вам предоставляется возможность задать текущий сезон,
70   с событиями которого в дальнейшем вы собираетесь работать путем запросов турниров и матчей:
71
72 +-------
73 SnookerScoreAPI api = Snooker.API();
74 api.setCurrentSeason(Season.getSeason(2015));
75 +-------
76
77 ===
78
79   P.S. Если вам необходимо использовать некэширующую версию API-интерфейса,
80   то её можно получить следующим образом:
81
82 +-------
83 SnookerScoreAPI uncachedApi = Snooker.uncachedAPI();
84 +-------