Domanda

Sto creando un servizio Web RESTful che ha più URI per una delle sue risorse, perché esiste più di un identificatore univoco.Il server dovrebbe rispondere a una richiesta GET per un URI alternativo restituendo la risorsa o dovrei inviare un reindirizzamento HTTP 3xx all'URI canonico?È HTTP 303 (vedi anche) il reindirizzamento più appropriato?

Una precisazione:la specifica HTTP chiarisce che la scelta del reindirizzamento dipende da quale URI dovranno essere utilizzate le future richieste.Nella mia applicazione, l'URI "canonico" è la più stabile delle alternative;un URI alternativo indirizzerà sempre allo stesso URI canonico o diventerà non valido.

È stato utile?

Soluzione

Personalmente preferirei restituire la risorsa piuttosto che perdere tempo con un reindirizzamento, anche se sospetto che sia solo perché il mio subconscio mi dice che i reindirizzamenti sono più lenti.

Tuttavia, se dovessi decidere di utilizzare un reindirizzamento, penso che un 302 o 307 potrebbe essere più appropriato di un 303, anche se il w3.org contiene i dettagli dei diversi codici di reindirizzamento che potresti utilizzare.

Altri suggerimenti

Sotto il W3C Architettura del World Wide Web, volume uno, c'è una sezione sugli alias URI (Sezione 2.3.1) che recita quanto segue:

"Quando un alias URI diventa valuta comune, il proprietario dell'URI dovrebbe utilizzare tecniche di protocollo come reindirizzamenti lato server per mettere in relazione le due risorse.La comunità trae vantaggio quando il proprietario dell'URI supporta il reindirizzamento di un URI con alias al corrispondente URI "ufficiale".Per ulteriori informazioni sul reindirizzamento, vedere la sezione 10.3, Reindirizzamento, in RFC2616.Guarda anche PATATINE FRITTE per una discussione su alcune best practice per gli amministratori di server."

Per quello che vale, consiglierei un reindirizzamento 302.

La risposta di Ubiguchi aveva ciò di cui avevo bisogno, tranne che ora penso che un reindirizzamento sia la strada da percorrere, tramite il collegamento alla sezione delle specifiche HTTP 1.1 sui codici di risposta.Si scopre che in realtà ho bisogno di un reindirizzamento 301 perché l'URI a cui sto reindirizzando è più "corretto" e stabile e dovrebbe quindi essere utilizzato per richieste future.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top