/ghfetcher_apache_client

Simple java github fetcher that uses apache http client

Primary LanguageJava

Uzasadnienie rozwiązania: Wykonując to zadanie chciałem nauczyć się czegoś nowego - pogłębiłem znajomość Apache HttpClient. Dlatego zaimplementowałem RateLimiter jako moduł do Apache HttpClient i przy okazji użyłem cache.

Pozostaje do zrobienia (niewysoki priorytet):

  • więcej testów
  • cache po stronie API (ETag&Co)
  • dokumentacja API używając np. OpenAPI (wygenerowanie OpenAPI yaml z kodu, lub odwrotnie) oraz opcjonalnie sandbox (statyczny JS + OpenAPI yaml lub Springfox)
  • minifikacja JDK uzywając jlink (nie zostało zrobione z powodu braku oficjalnego wsparcia ze strony Spring)
  • Rozproszony cache dla repo info odpowiedni punkt wejściowy został zaznaczony

Myślę ze rozwiązanie było by bardziej zwinne gdybym użył "microframeworków" np. micronaut, co prawda kosztem utrzymania.

Budowanie packi ./gradlew build docker Deployment z docker image ustawienia poprzez ENV (więcej: application.properties i SetupContainerSpec)