mpfmorawski / git-to-know-me

3 stars 1 forks source link

Zapoznanie się z API Githubowymi w kontekście autoryzacji przy pobraniu większej ilości danych #4

Closed mpfmorawski closed 2 years ago

mpfmorawski commented 2 years ago

Ogarnąć, jak korzystać z API GitHuba w kontekście pobierania dużych ilości danych - API ma ograniczenie do 50 zapytań na godzinę, chyba że się zarejestrujesz. Ogarnąć, jak można wykorzystać API token w celu dostępu do danych nt. repozytoriów danego użytkownika. + integracja API z mikroserwisem

lapankrz commented 2 years ago

API GitHuba posiada limit 60 zapytań na godzinę, ale autentykacja pozwala zwiększyć go do 5000 zapytań na godzinę. W tym celu należy zarejestrować aplikację na stronie https://github.com/settings/applications/new, dostaniemy wtedy client_id, które pozwoli dokonać użytkownikowi autoryzacji wg schematu web application flow. Składa się on z następujących kroków:

  1. Przekierowanie użytkownika na stronę https://github.com/login/oauth/authorize, gdzie może udzielić nam dostępu do określonych danych związanych ze swoim profilem.
  2. GitHub przekierowuje użytkownika z powrotem na naszą stronę wraz z tymczasowym kodem, który można wymienić (POST) na token dostępu.
  3. Uzyskany token po dodaniu do headera zapytań GET daje nam możliwość pobierania danych o profilu użytkownika (na nasze potrzeby) bez ograniczeń.

Wydaje mi się, że najlepszym sposobem będzie stworzenie osobnego serwisu zarządzającego tokenami poszczególnych użytkowników (ew. funkcjonalność ta może być włączona do Auth Service ze schematu zaproponowanego przez Pawła). Tokeny po autoryzacji byłyby przechowywane w bazie danych i wykorzystywane tylko przy dokonywaniu zapytań API wymagających logowania.

mpfmorawski commented 2 years ago

Dokończenie zadania w tym Issue polegało będzie na zarejestrowaniu naszej aplikacji (wstępny termin: 10.04.2022)

mpfmorawski commented 2 years ago

@lapankrz, proszę o aktualizację w sprawie realizacji zadania

lapankrz commented 2 years ago

Done

mpfmorawski commented 2 years ago

Czy po rejestracji dostałeś jakieś dodatkowe dane, które będą innym potrzebne?

Jeśli tak, to proszę je udostępnić (oczywiście nie tutaj, bo są to prawdopodobnie wrażliwe dane - sugeruję adnotację na naszym dysku). Jeśli nie, to proponuję zamknąć to Issue 😄