Qual è la differenza tra la categoria / category_id / item_id e categoria? Category_id = {} & item_id = {} a REST?
-
21-09-2019 - |
Domanda
Ho appena iniziato a guardare a riposo e si chiedeva quale sia la differenza fondamentale tra le due rappresentazioni è stato. Il primo sembra piuttosto gentile con me e la seconda deve passare alcuni valori degli attributi, ma la logica di fondo sembra essere bollente per quasi la stessa cosa (potrei essere scambiato però)
http://url/category/category_id/item_id
E
http://url/category?category_id={12}&item_id={12334}
Soluzione
Penso che si sta lavorando sotto alcune idee sbagliate fondamentali su ciò che REST è di circa.
L'URL utilizzato per accedere a una risorsa è davvero un dettaglio e in realtà non dovrebbe importare al cliente. URL di realtà dovrebbe essere "scoperto" dai clienti in ogni caso se seguono il HATEAOS Principe che è uno dei principi di riposo.
In sostanza hai ragione però: o URL potrebbe rappresentano la risorsa che si sta esponendo alla fine, ma come ho detto, questo è davvero un dettaglio e si tratta di preferenza in molti casi a quale URL si espone qualcosa. Il punto di hateoas è quello di permettere di cambiare l'URL che vengono utilizzati per accedere alle risorse a volontà senza influenzare i clienti che lavorano contro i tuoi servizi esistenti.
Il seguente URL può aiutare a capire alcune delle proprietà che rendono servizi veramente RESTful:
[disclaimer: solo perché HATEAOS è un principio di REST non lo rende facile da fare. Troverete la maggior parte dei servizi sul web non seguono questo principio rigorosamente a tutti, come dimostra la loro documentazione che è piena di modelli di URL; Non i servizi modo devono essere documentate nel mondo ideale. Mi sto lottando per trovare buoni esempi di servizi veramente riposante e clienti ...]
Altri suggerimenti
Dovrebbe essere possibile per gli agenti di ragionare sulla struttura delle risorse:
- in base alla URL e
- sulla base di link restituiti da richieste di risorse.
Il problema con la seconda rappresentazione è che può essere considerato come un set chiavi e valori non ordinati, senza alcuna vera e propria struttura / gerarchia.
Se si fa clic sul pulsante dal tag restful-url
si ottiene un buon collegamento da questo sito che spiega la differenza tra questi due stili: