I due punti sono ok in una API REST?

2

Vedo molti esempi di API REST con URI come http://<whatever>/widgets o http://<whatever>/widget/123 , per una cosa specifica. Per la maggior parte delle cose mi limiterò ad attaccare alla barra frontale, ma quando richiedo uno specifico id preferisco usare due punti, come http://<whatever>/widget:123 .

In base a ciò che ho trovato qui sulle migliori pratiche , non c'era molto sull'uso del colon, in particolare. Sembra che sia accettabile, ma è / quali potrebbero essere alcuni trabocchetti per usarli al posto della barra?

Express.js sembra a posto con loro (per quanto riguarda il codice):
app.get('/widgets::id', function(req, res){ <...> });

Aggiornamento: mi sono imbattuto in questo . Sembra che i due punti siano perfettamente adatti per questo uso.

    
posta Brian Chandler 27.10.2015 - 15:29
fonte

3 risposte

3

Rispondendo a questo per chiuderlo ora che ho terminato l'API REST e fatto alcuni test. O il colon o il front slash andavano bene, tuttavia, è diventato evidente che ogni esempio dal vivo che potevo trovare utilizzava front-slash. Penso che MichaelT porti il punto migliore. Un'altra libreria potrebbe non funzionare con esso. Ho intenzione di estenderlo e dire che è dannatamente probabile. Il software di test potrebbe non esserlo nemmeno perché non è fatto di solito. Ricordo anche da qualche parte lì dentro, pensando che avrei avuto bisogno di un codice extra per gestire il colon, ma se lo lasciavo come un front-slash potrei mantenere la mia fonte più semplice.

Tutto ciò detto, dirò che appare tecnicamente bene per usare il colon nel modo in cui ho descritto, ma sto anche per dire che potrebbe essere più difficile di vale la pena semplicemente perché sembra andare contro un grano ben accettato. Alla fine sono andato con il front-slash ... per ora. ;)

    
risposta data 09.11.2015 - 00:24
fonte
2

Anche se nella maggior parte dei casi funzionerebbe perché si usano i due punti dietro le prime barre, non consiglierei di usarlo. Come puoi vedere qui i due punti è un token riservato, viene usato per specificare la porta numero subito dopo il nome del dominio (prima di qualsiasi barra). Quindi usarlo potrebbe darti strani errori.

È meglio restare con / o usando ?foo=1&bar=2 .

    
risposta data 27.10.2015 - 16:35
fonte
1

Seguendo le specifiche per l'URL presentato nell'originale RFC1738 o in RFC3986 per le specifiche URI, due punti (:) è riservato per scopi specifici. Le barre nella porzione di percorso dell'URL sono lì per connotare una gerarchia.

Quindi, mentre la tua applicazione non si interrompe quando una rotta con due punti nel percorso corrisponde, non segue la specifica proposta. La specifica è uno standard concordato. Le tue applicazioni possono fare quello che vuoi però.

    
risposta data 08.01.2016 - 10:41
fonte

Leggi altre domande sui tag