Mam do zrobienia prosty REST service korzystający z api githubowego. Request od usera w stylu pobieranie info o repozytoriach itp.
Na https://developer.github.com/v3 wyczytałem, że client bez autentykacji może wysyłać 60 requestów na godzine. Oczywiście jest to dla mnie za mało.
Po autentykacji limit wzrasta do 5000 reuqestów / hour.
Korzystam z tego API: https://github.com/eclipse/egit-github/tree/master/org.eclipse.egit.github.core
Z autentykacją i pobieraniem danych nie mam problemów.
Moje pytanie jest następujące. Jeśli tworzenie clienta / servicu i autentykacja wygląda tak:
GitHubClient client = new GitHubClient();
client.setCredentials(login, token);
RepositoryService service = new RepositoryService(client);
jakbyście podeszli do tego od strony architektonicznej aby autentykacja wykonywała się tylko RAZ od razu po starcie apki, a nie za każdym requestem + aby obsługiwało to 20 requestów na sekundę bez większych problemów?
Czy robienie czegoś takiego:
ConfigurableApplicationContext context = SpringApplication.run(ServiceApplication.class, args);
context.getBean(RepoDetailsService.class).testMethod();
ma sens? testMethod() dokonywało by autentykacji i tworzyło RepositoryService do którego potem mógłbym się odwoływać.