Stay Tuned!
pip install djoser
pip install djangorestframework-simplejwt
pip install django-user-accounts
pip install django
pip install djangorestframework
pip install django-registration
pip install django-filter
pip install django-qrcode
Usuń db.sqlite3
Usuń wszystko z /backend/migrations
python manage.py makemigrations backend
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
Serwer został napisany w oparciu o architekturę REST. Połączenie z serwerem nawiązuje się poprzez wywołanie adresu url odpowiadającego danej akcji używając przy tym odpowiedniej metody HTTP. Dane w postaci JSON przekazuje się poprzez np. metodę POST lub jako zmienną "json" metody GET.
Do każdego połączenia z serwerem należy dołączyć do adresu zmienną Bearer token postaci "Authorization: Bearer XXX"
| Kod | Opis |
|---|---|
| 200 | Sukces |
| 201 | Sukces - pomyślnie utworzono obiekt(y) |
| 204 | Sukces - pomyślnie usunięto obiekt |
| Kod | Opis |
|---|---|
| 400 | Serwer otrzymał złe dane |
| 401 | Serwer nie otrzymał danych |
| 403 | Brak uprawnień |
| 404 | Żądany obiekt nie istnieje |
| Metoda HTTP | Content-Type | Opis wejścia | Przykład wejścia | Akcja |
|---|---|---|---|---|
| GET | ||||
| POST | application/json | JSON | {"token" : "XXX"} | Sprawdzanie tokena |
| PUT | Brak | |||
| DELETE | Brak |
curl -X POST -d '{"token": "XXX"}' -H 'Content-Type: application/json' http://127.0.0.1:8000/auth/jwt/verify
Sukces: {} Niepowodzenie: {"detail":"Token is invalid or expired","code":"token_not_valid"}
| Metoda HTTP | Content-Type | Opis wejścia | Przykład wejścia | Akcja |
|---|---|---|---|---|
| GET | ||||
| POST | application/json | JSON | {"refresh" : "XXX"} | Odświeżanie tokena |
| PUT | Brak | |||
| DELETE | Brak |
curl -X POST -d '{"refresh": "XXX"}' -H 'Content-Type: application/json' http://127.0.0.1:8000/auth/jwt/refresh
Sukces: {"access":"XXX"}
Niepowodzenie: {"detail":"Token is invalid or expired","code":"token_not_valid"}
| Metoda HTTP | Content-Type | Opis wejścia | Przykład wejścia | Akcja |
|---|---|---|---|---|
| GET | ||||
| POST | application/json | JSON | {"email": " ","password": " ", "name" : "Tom Hanks", "phone" : "+48123666789"} | Utworzenie konta |
| PUT | Brak | |||
| DELETE | Brak |
curl -X POST -d '{"email": "arus@arus.com","password": "maslotoniehaslo", "name" : "Tom Hanks", "phone" : "+48123666789"}' -H 'Content-Type: application/json' http://127.0.0.1:8000/auth/users/
| Metoda HTTP | Content-Type | Opis wejścia | Przykład wejścia | Akcja |
|---|---|---|---|---|
| GET | Brak | |||
| POST | application/json | JSON | {"email": " ","password": " "} | Logowanie |
| PUT | Brak | |||
| DELETE | Brak |
curl -X POST -d '{"email": "arus@arus.com","password": "maslotoniehaslo"}' -H 'Content-Type: application/json' http://127.0.0.1:8000/auth/jwt/create
| Metoda HTTP | Content-Type | Opis wejścia | Przykład wejścia | Akcja |
|---|---|---|---|---|
| GET | application/json | Zwraca nazwę zalogowanego użytkownika |
curl -X GET http://127.0.0.1:8000/api/username/
| Metoda HTTP | Content-Type | Opis wejścia | Przykład wejścia | Akcja |
|---|---|---|---|---|
| GET | Pobranie kluczy api użytkownika | |||
| POST | Brak | |||
| (PUT) | Brak | |||
| (DELETE) | Brak |
curl -X GET -H "Authorization: Bearer XXX" http://127.0.0.1:8000/api/eventkeys
| Metoda HTTP | Content-Type | Opis wejścia | Przykład wejścia | Akcja |
|---|---|---|---|---|
| GET | Brak | |||
| POST | Dodanie klucza API | |||
| (PUT) | Brak | |||
| (DELETE) | Usunięcie klucza API |
curl -X GET http://127.0.0.1:8000/api/events/
Jeśli przy dodawaniu dostaniemy 404 oznacza to, iż nie ma eventu z tym kluczem Jeśli będziemy próbowali usunąć klucz, którego dany użytkownik nie miał, również dostaniemy 404
| Metoda HTTP | Content-Type | Opis wejścia | Przykład wejścia | Akcja |
|---|---|---|---|---|
| GET | Pobranie podstawowych informacji (nazwa, data, miejsce) wszystkich wydarzeń | |||
| POST | application/json | JSON | {"event_name":"Maraton", "descriptions":"Opis wydarzenia", "pictures":"https://strona.pl/adres/url/zdjecia.jpg", "event_date":"2020-04-17T11:22:42+02:00", "city":"Wrocław", "street":"Długa", "post_code":"53-615", "street_address":"1", "country":"Polska"} | Dodanie wydarzenia\wydarzeń |
| (PUT) | Brak | |||
| (DELETE) | Brak |
curl -X GET http://127.0.0.1:8000/api/events/
| Parametr wydarzenia | HTTP - filtrowanie | HTTP - sortowanie |
|---|---|---|
| ID | ?id= | ?ordering=id |
| Nazwa | ?event_name= | ?ordering=event_name |
| Opis | ?descriptions= | |
| Data | ?event_date= | ?ordering=event_date |
| Miasto | ?city= | ?ordering=city |
| Ulica | ?street= | |
| Państwo | ?country= | ?ordering=country |
| Aby sortować malejąco użyj znaku: -= (?ordering-=id) |
curl -X GET http://127.0.0.1:8000/api/events/?street=Kolorowa&country=Polska
curl -X GET http://127.0.0.1:8000/api/events/?ordering=event_date
| Metoda HTTP | Content-Type | Opis wejścia | Przykład wejścia | Akcja |
|---|---|---|---|---|
| GET | Pobranie wszystkich informacji wybranego wydarzenia | |||
| (POST) | Brak | |||
| PUT | application/json | JSON | {"event_name":"Maraton", "descriptions":"Zaktualizowany opis", "pictures":"https://strona.pl/adres/url/zdjecia.jpg", "event_date":"2020-04-17T11:22:42+02:00", "city":"Wrocław", "street":"Długa", "post_code":"53-615", "street_address":"1", "country":"Polska"} | Aktualizacja informacji o wybranym wydarzeniu |
| DELETE | Usunięcie wybranego wydarzenia |
curl -X GET http://127.0.0.1:8000/api/events/1/
| Metoda HTTP | Content-Type | Opis wejścia | Przykład wejścia | Akcja |
|---|---|---|---|---|
| GET | Pobranie podstawowych infromacji i kodu QR swoich biletów | |||
| (POST) | Brak | |||
| (PUT) | Brak | |||
| (DELETE) | Brak |
curl -X GET http://127.0.0.1:8000/api/tickets/
| Metoda HTTP | Content-Type | Opis wejścia | Przykład wejścia | Akcja |
|---|---|---|---|---|
| GET | Pobranie wszystkich informacji wybranego biletu | |||
| (POST) | Brak | |||
| PUT | application/json | JSON | Aktualizacja informacji o wybranym bilecie | |
| DELETE | Usunięcie wybranego biletu |
| Metoda HTTP | Content-Type | Opis wejścia | Przykład wejścia | Akcja |
|---|---|---|---|---|
| PATCH | Skasowanie wybranego biletu |
curl -X PATCH http://127.0.0.1:8000/api/tickets/142fs5.../validate/