-
Notifications
You must be signed in to change notification settings - Fork 0
damianut/public-MarsDige
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
REST API do pobierania zdjęć z NASA zrobionych w trakcie polskich świąt w 2019. Projekt jest rozwiązaniem następującego zadania rekrutacyjnego: https://github.com/hellodigers/recruitment-task-junior-symfony-developer .1. Wymagania: .1.1. serwer HTTP (korzystałem z Symfony Development Server) .1.2. serwer MySQL (korzystałem z MySQL Community Server 8.0.20 GPL) .1.3. Composer (do instalacji paczek Symfony) .1.4. przeglądarka i połączenie z Internetem .2. Struktura projektu: .2.1. mySQL z bazą danych `nasa_data`a .2.2. uruchomiony Symfony Development Server .2.3. MarsDige (sklonowany projekt) .3. Szczegóły projektu: Odniosę się teraz do trzech punktów z zadania. .3.1. Lista polskich świąt w 2019 roku się nie zmieni. Dlatego nie stworzyłem komendy do odświeżania tej listy (a było takie polecenie w zadaniu). W zamian za to stworzyłem następujący endpoint z listą polskich świąt z mojej bazy danych: `127.0.0.1:8000/polish_holidays` .3.2. "Komenda" do odświeżania danych o zdjęciach zrobionych w czasie polskich świąt: `127.0.0.1:8000/refresh_database` .3.3. Korzystanie z "anonymous API with two endpoints", szczegółowo opisane jest w FrontController.php: `src/Controller/FrontController.php` .3.3.1. Pierwszy endpoint to następujący URL: `127.0.0.1:8000/query` Dzięki niemu możemy uzyskać dane o wszystkich zdjęciach. Aby uzyskać dane o obrazach spełniających pewne warunki, należy dodać do URL parametry opisane w FrontController.php. .3.3.2. Drugi endpoint to następujący URL: `127.0.0.1:8000/single_photo?id=` Po `=` należy wpisać `id` np. `677817`. Jeśli w `nasa_data` jest zdjęcie o takim `id`, to w odpowiedzi uzyskamy JSON z informacjami o tym zdjęciu. Wraz z URLem zdjęcia. `id` można uzyskać, korzystając z pierwszego endpoint: `127.0.0.1:8000/query` Jeśli wpiszemy w pierwszym endpoint datę lub zakres dat w których odbyło się polskie święto, w czasie którego jakikolwiek z łazików zrobił zdjęcie to uzyskamy `id` tego zdjęcia w JSON. .4. Aby przetestować projekt na własnym serwerze należy: .4.1. Sklonować całe repozytorium `https://github.com/damianut/MarsDige` .4.2. W folderze ze sklonowanym repozytorium wykonać komendę `composer install`, czyli zainstalować zależności. .4.3. Utworzyć na swoim serwerze mySQL bazę danych `nasa_data` z metodą porównywania napisów: `utf8mb4_polish_ci` .4.4. Utworzyć użytkownika, który będzie miał wszystkie uprawnienia do `nasa_data` .4.5. Zaimportować do tej bazy plik `nasa_data.sql` z pobranego repozytorium. To może trochę potrwać. Ten plik zawiera tylko część tabeli, aby móc przetestować pobieranie zdjęć - reszta zostanie utworzona po uruchomieniu odpowiedniej "komendy". .4.6. Utworzyć plik '.env.local' i zapisać w nim następujące dane: DB_HOST={adres hosta, np: 127.0.0.1} DB_USER={login} DB_PASS={hasło} DB_NAME={nazwa bazy danych} Gdzie '{login}' to nazwa utworzonego użytkownika z wszystkimi uprawnieniami do bazy danych `nasa_data`/ .4.7. Uruchomić Symfony Developer Server. Powinien on nasłuchiwać adres i port: `127.0.0.1:8000` .4.8. Wejść na stronę `127.0.0.1:8000/refresh_database` w celu aktualizacji bazy danych (to może trochę potrwać) .4.9. Wysłać zapytanie zgodnie z opisem z FrontController.php lub README (o ile serwer nasłuchuje adres i port podany w .4.6.) .5. Uwagi: .5.1. Nie skorzystałem z 'curl_multi_init', bo NASA blokuje za dużą liczbę połączeń w krótkim czasie. .5.2. Ze względu na powyższe (.5.2.), aktualizacja bazy danych trochę trwa. /*............................................................................*/
About
REST API for retrieving photos from Mars!
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published