Model de url urgent

Să presupunem că am un URL ca următoarele, de ex.

  1. http://www.company.com/categories # List all categories
  2. http://www.company.com/categories/car # List all cars
  3. http://www.company.com/products/303 # A car with unique id = 303

Întrebarea mea este că, pentru 2. http://www.company.com/categories/car , este mai bine dacă folosesc formularul plural?

de exemplu.

http://www.company.com/categories/cars
0
@Widor, vreau să spun mai multe standard și, prin urmare, Restful
adăugat autor Howard, sursa
Definiți "mai bine" - mai bine pentru cine/ce scop?
adăugat autor Widor, sursa
Este vorba despre o problemă legată de cod? Dacă îți înțeleg corect întrebarea, nu pare.
adăugat autor poepje, sursa

6 răspunsuri

Pentru a face 2. mai multe modele RESTful, veți emite o solicitare GET pentru a prelua lista de autoturisme.

În acest caz, ar fi logic să folosiți pluralul:

http://www.company.com/categories/cars

care lasă deschisă posibilitatea extinderii acesteia cu înregistrări specifice (singulare) de mașini:

http://www.company.com/categories/cars/ferrari
0
adăugat
Ai făcut un punct bun! Deci, de ce nu company.com/categories/cars/ferraris ? Dacă am alte categorii cum ar fi luxul, Coupe etc. Se pare că, dacă o categorie nu are subcategorii suplimentare, singularul are sens, dar din moment ce nu putem prezice viitorul, întotdeauna pluralul este mai flexibil.
adăugat autor Howard, sursa
Dacă ați fi vrut să aveți Ferraris ca o categorie de mașină și ați revenit la multe modele, atunci ați putea să o pluralizați și asta ar avea înțeles. Dar pentru orice altceva care întoarce vreodată o singură înregistrare ( Persoana ar fi un exemplu mai bun de acest lucru), atunci rămâneți singular.
adăugat autor Widor, sursa

Plural. The "cars" element in the url should reflect the name of the category. The name of categories are in my experience usually plural since they identify a set of multiple entities. E.g.: category of transporation devices are: cars, planes, bicycles and skateboards.

Ceva este o mașină și aparține categoriei "mașini".

Un exemplu bun este convenția de numire la wikipedia pentru categoriile setate:

Setați categoriile după numele unei clase (de obicei în plural). De exemplu, categoria: Orașele din Franța conțin articole ale căror subiecte sunt orașe din Franța.

https://en.wikipedia.org/wiki/Wikipedia:Set_category#Set_category

0
adăugat

Este corect dacă utilizați plural pentru resursele dvs. Cu toate acestea, nu se numește Restful dacă folosiți urlul astfel:

 http://www.company.com/categories/cars

deoarece mașinile sunt sub-sursa categoriilor ... Deci, pentru a fi mai bine, vă sugerez să expuneți resursele autoturismelor ca sub-sursă a unei categorii specifice:

 http://www.company.com/categories/123/cars #get all cars under category which id = 123
0
adăugat
Nu este ceea ce au fost proiectate șirurile de interogare? adică GET http://www.company.com/cars?category_id=123 # primi toate mașinile cu categoria id = 123 .
adăugat autor FtDRbwLXw6, sursa
Da, puteți folosi și asta. Totuși, întrebarea de mai sus nu a vorbit despre șirul de interogări.
adăugat autor Someth Victory, sursa

A fost în totalitate dependentă de dumneavoastră și de cererea dumneavoastră. Dacă aveți un număr de servicii REST, puteți utiliza și carList în locul mașinii sau a autoturismelor. Acest lucru are sens și mai puțin confuzie. Asigurați-vă că aveți o uniformitate în toate URI-urile REST.

0
adăugat

gândiți-vă la aceasta ca la un director Windows Explorer. Unde ar fi un ferrari dacă organizați mașini într-un dosar local?

Un alt lucru de luat în considerare este de a proiecta URI special pentru cererile PUT și POST unde aveți mai multe substantive și mai puțin verbe.

0
adăugat

A categSAUy englobes a lot of items. So, yes. Cars would have mSAUe sense than car

http://www.company.com/categSAUies/cars/mitsubishi/lancer (if you have mSAUe categSAUies)

SAU

http://www.company.com/categSAUies/cars/lancer
0
adăugat