Skip to content

asistenti/iss-swagger-spec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 

Repository files navigation

iss-swagger-spec

Trenutna verzija specifikacije: 2.0.0

Greške koje se tiču ograničenja na poljima u telu zahteva su u sledećem formatu:

Svi endpoint-i koji treba da budu zaštićeni za ulogovane korisnike treba da vrate odgovor sa statusom 401 i porukom: Unauthorized!

Svi endpoint-i koji treba da budu zaštićeni za specifične role treba da vrate odgovor sa statusom 403 i porukom: Access denied!

Neispunjena ograničenja po pitanju formata podataka treba da vrate odgovor 400:

  • pogrešno naveden format polja u JSON-u/Query parametrima/URL parametrima -> Field ({}) format is not valid!
  • string (maxLength) -> Field ({}) cannot be longer than {} characters!
  • string (required) -> Field ({}) is required!
  • string (regex/email) -> Field ({}) format is not valid!

Pošto neke endpoint-e mogu gađati i administrator i vozač ili putnik, u putanji gde je naveden {id} za zahtev od strane administratora, ne treba da postoje restrikcije osim ako nešto sa tim id-em uopšte ne postoji u bazi. Ako je zahtev od strane putnika ili vozača, bitno je da ne mogu da pristupe podacima drugih putnika ili vozača. U tom slučaju vraćati grešku 404 (koja je navedena za taj endpoint) sa porukom da taj entitet ne postoji.

Izmene po verzijama:

2.0.1:

  • receiverId iz putanje POST /api/user/{id}/message je redundantan pa je uklonjen
  • U putanjama PUT /api/user/{id}/changePassword i PUT /api/user/{id}/resetPassword su promenjene promenljive u camelCase i azurirana su ogranicenja (regex-i) koji se iz nekog razloga nisu lepo prikazivali u swagger editoru, a jesu u ReDoc-u.
  • Promena 400 greske u putanji /api/vehicle/{id}/location u 404 ,,Vehicle does not exist!,, jer stara greska nije u skladu sa objasnjenjem na vrhu ovog fajla
  • Zbog konzistentnosti ispravljeno je da sve 400 greske se vracaju kao application/json, a 404 kao text/plain
  • Azurirana poruka u response-u za putanju GET /api/ride/{id}/end
  • Azurirana poruka u response-u za putanju GET /api/ride/{id}/cancel
  • Jedan bitan detalj nije dodat u samo kreiranje voznje, a tice se podatka o vremenu kada se voznja zakazuje za buducnost te je u Ride objekat koji se koristi u vecini /api/ride/.. endpoint-ova prosiren atributom scheduledTime

2.0.0:

  • POST i GET /api/review/{rideId}/driver/{id} -> /api/review/{rideId}/driver Id driver-a zapravo nije neophodan jer je jedan vozač vezan za ride
  • POST i GET /api/review/{rideId}/vehicle/{id} -> /api/review/{rideId}/vehicle Id vehicle-a zapravo nije neophodan jer je jedno vozilo vezano za ride
  • Uklonjen password kao polje iz putanja -> PUT /api/passenger/{id} i PUT /api/driver/{id}
  • vehicleType preimenovan na svim mestima sa STANDARDNO na STANDARD
  • id u telu slanja zahteva za kreiranje i menjanje radnog vremena je izbacen
  • Dodata putanja /api/ride/{id}/start da se označi kada je vožnja počela.

1.1.0:

  • Dodat prefix ,,/api,, na svaku putanju
  • Dodat prevedena kompletna specifikacija na engleski (svi naiziv atributa su sada na engleskom)
  • Dodati endpoint-i za recenziju vozila (samim tim dodato i polje liste recenzija kod vozila u modelu)
  • Dodat ,,name,, atribut u koordinatama koji ce spreciti potrebu reverse geocoding-a (dodat i u modelu).
  • Izbacen pocetak radnog vremena prilikom kreiranja istog jer je to podatak koji se moze generisati na serveru
  • Izbacen kraj radnog vremena prilikom azuriranja istog jer je to podatak koji se moze generisati na serveru
  • Kod povratnih vrednosti za korisnike, ne vraca se password polje
  • Kod poruke kao povratne vrednosti prilikom kreiranja vraca se i senderId

1.1.1:

  • Dodate lokacije u svaki odgovor koji vraca Ride
  • Dobavljanje poruka sada ima query parametar userId, jer se ne dobavljaju sve poruke korisnika, nego sa potrebe chat-a se dobavljaju njegove poruke u kojima je on sender i receiver, ali u vezi sa nekim drugim korisnikom sto predstavlja bas userId
  • Dodata su 2 endpoint-a sa dobavljanje trenutne AKTIVNE voznje za vozaca i putnika.

1.1.2:

  • Ispravljene su putanje za review. GET /api/review/{driverId} -> GET /api/review/driver/{id} GET /api/review/{vehicleId} -> GET /api/review/vehicle/{id}

1.1.3:

  • Greska kod putanje /api/user/{id}/message. Naveden je pored id-a i userId parametar koji je slucajno ostao neobrisan.
  • Greska kod putanje /api/reviews/{rideId} -> /api/review/{rideId} Uklonjeno je ,,s,, za mnozinu.

1.1.4:

  • Promenjen naziv atributa ,,departures,, u ,,departure,, u endpoint-u POST /api/ride i POST /api/unregisteredUser/
  • Odgovor prilikom kreiranja review-a i za vozača i vozilo ima promenjen atribut sa review u comment.
  • Potencijalne enum vrednosti (VOZNJA, VOZAC, Prihvaceno, Zavrseno, Odbijeno) preimenovane u (RIDE, DRIVER, ACCEPTED, FINISHED, REJECTED)

1.1.5:

  • Ispravljene semanticke greske koje je swagger prijavljivao. Pogledati sam commit sa razlike.

1.1.6:

  • Izbacen tip iz passengers i driver atributa kod voznje jer je redundantan
  • Reimenovan atribut poruka u message kod otkazivanja voznje od strane putnika
  • U odgovoru za kreiranje panic-a, vracaju se user i ride umesto userId i rideId
  • Uklonjen id driver-a iz request body-a kod azuiranja postojeceg driver-a
  • driver-id je izbacen iz endpointov-a: GET i PUT /api/driver/{driver-id}/working-hour/{working-hour-id} pa sad ti endoint-ovi su GET i PUT /api/driver/working-hour/{working-hour-id}

1.1.7:

  • POST promenjen u GET kod aktivacije naloga
  • /api/review/{rideId} sada vraca listu objekata za review vozila i vozaca zbog toga sto vise putnika moze da ostavi ocenu za vozilo i vozaca u istoj voznji
  • U svim review endpoint-ovima se dodatno vraca i podatak o putniku koji je ostavio review. Kada se review kreira, to je podatak koji se moze izvuci iz JWT-a, koji cete tek raditi na predavanju, tako da svakako nije neophodno da se salje ko je ostavio review
  • Prilikom kreiranja review-a, treba nam i podatak na koji ride se odnosi review, pa je dodat u putanji: POST /api/review/driver/{id} -> POST /api/review/{rideId}/driver/{id} POST /api/review/vehicle/{id} -> POST /api/review/{rideId}/vehicle/{id}
  • Dodati id, status i odbijenica u svim ride odgovrima. Id i status je nesto ce uvek postojati, a odbijenica ce najcesce imati null vrednost prilikom vracanja
  • Ispravljene putanje za aktivne voznje kod vozaca i putnika zbog ambigous greske u Spring-u /api/ride/active/{driverId} -> /api/ride/driver/{driverId}/active /api/ride/active/{passengerId} -> /api/ride/passenger/{passengerId}/active
  • Locations u odgovorima kod Ride objekta je istog formata kao i u request-u
  • Cancel ride od strane putnika (/api/ride/{id}) promenjen u -> /api/ride/{id}/withdraw - kao odgovor se takodje vraca ride
  • Kod kreiranja dokumenata za vozaca izbacen je driverId

1.1.8:

  • Ispravak opis-a endpoint-a za brisanje dokumenata vozaca

1.1.9

  • /api/passenger/{activationId} -> /api/passenger/activate/{activationId} zbog Srping ambiguous prorblema

1.1.10

  • Kod ruta /api/user/{id}/ride, /api/driver/{id}/ride, /api/passenger/{id}/ride u locations listi, uklonjeni atributi address, latitude, longitude, tako da sada ostaju samo deprature i destinations

1.1.11

  • Ispravljene ride putanje da vraćaju odgovor u telu umesto stringa
  • Ispravljene working-hours PUT i POST rute da imaju telo zahteva
  • /api/login preimenovan u /api/user/login
  • Brisanje dokumenta preimenovano u /api/driver/document/{document-id}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors