Come apparirebbe un URI di risorsa in REST, che viola il principio di non modificare il suo significato semantico?

2

Fielding scrive nella sua famosa dissertazione (p.89)

The only thing that is required to be static for a resource is the semantics of the mapping, since the semantics is what distinguishes one resource from another.

Quindi una risorsa prot://bookstore.com/new-books-this-week è OK, perché sebbene mostri sempre diversi libri ogni settimana, il significato semantico non cambia.

Non capisco come potrebbe essere altrimenti, a meno che l'URI sopra riportato non inizi a restituire nuovi libri della scorsa settimana o, per esempio, autori al posto dei libri.

Esiste un modello di URI che si verifica comunemente nel mondo reale che viola questo principio?

    
posta problemofficer 11.12.2017 - 01:42
fonte

2 risposte

2

La tesi di Fielding si basava sull'osservazione dei principi di progettazione che fanno funzionare bene il Web e questa è una delle cose che, a un livello elevato, la maggior parte dei siti web ha ragione. Se hai fatto qualcosa come creare pagine sequenziali, ad es. /foo/bar/0 , /foo/bar/1 e poi riassegnati in modo casuale quindi ciò violerebbe questo, ma dubito che qualcuno lo faccia, almeno non per uno scopo o per molto tempo. Propongo la ragione per questo perché la stabilità URI è così fondamentale per far funzionare le cose e Fielding sta semplicemente riconoscendo questo.

L'unica cosa che posso pensare di aver visto su base regolare è un sito Web che riorganizza tutti i loro URI in modo che i vecchi link a loro restituiscano 404. Non è che le pagine non siano più disponibili (alias 410: GONE ), hanno appena abbandonato i vecchi URL senza inoltro. Una grande azienda blu ha fatto questo con la loro documentazione online circa un decennio fa. Troverei regolarmente una discussione relativa a un problema che stavamo avendo e qualcuno che inviava una risposta come "la soluzione può essere trovata qui" con un link che dà appena un 404. Per fortuna, non devo più preoccuparmi. Fielding ha ragione, questo è intollerabile.

Anche se questo potrebbe ricadere in una diversa categoria di problemi, ritengo che sia un esempio di questo perché il significato semantico di un URI esistente è cambiato da qualcosa a niente.

    
risposta data 19.03.2018 - 14:55
fonte
0

Is there a commonly occurring URI pattern in the real world that violates this principle?

Non uno che è RESTful, secondo la definizione di REST.

Ci sono miliardi di casi in cui la risposta di un URL ha cambiato significato e ha catturato i consumatori di quell'endpoint off-guard. Ma questo è solo un fallimento del provider di comunicare efficacemente il significato semantico della risorsa (che spesso è "Questa risorsa rappresenta qualunque cosa riteniamo che rappresenti e non ci garantisce la sua disponibilità"), o un'incapacità del cliente di comprendere il livello di inettitudine del provider nell'evitare di eliminare il proprio sito web / andare in giro / inciampare su un cavo di alimentazione.

es. qualsiasi pagina web che funzionasse, ma ora restituisce una pagina di errore con una risposta di 200 (e nemmeno un 404, per non parlare di un 410).

Fare REST correttamente (come fornitore) si riduce a:

  1. Comunicazione efficace dei significati delle risorse
  2. Utilizzo del protocollo di comunicazione (in genere HTTP ma non necessariamente)
risposta data 18.12.2017 - 16:05
fonte

Leggi altre domande sui tag