Stiamo progettando alcuni servizi web orientati alle risorse.
Il servizio B deve essere in grado di effettuare chiamate al servizio A passando in un riferimento a una risorsa nel servizio B che il servizio A utilizzerà quando formulerà la sua risposta. Forse il servizio A ha già delle conoscenze sulla risorsa del servizio B da un'interazione precedente.
per es.
GET http://serviceA.com/resource/123?widget=http://serviceB.com/widget/456
(ovviamente il parametro di query 'widget' dovrebbe essere codificato in modo appropriato)
In pratica vedo pochissimi esempi di questo genere di cose. A volte lo vedi sul web, ad es. un esempio potrebbe essere URI di reindirizzamento in Google OAuth ( link )
Sembra che sia più comune costruire una certa conoscenza delle risorse del servizio B nel servizio A in modo da poter effettuare una chiamata come:
GET http://serviceA.com/resource/123?widget=456
Questo sembra spezzare i principi di progettazione orientata alle risorse.
Gli URL di incorporamento come parametri di query sono un approccio di progettazione appropriato o ci sono problemi con esso?
Chiaramente potrebbe portare a problemi con la lunghezza dell'URL con qualsiasi agente utente che abbia limitazioni sulla lunghezza dell'URL. E sembra un po 'brutto. Ma oltre a ci sono altri aspetti negativi? Perché non viene usato di più? O forse lo è? È perché la maggior parte dei progetti di API basati su REST non sono veramente RESTful (orientati alle risorse), il che non vuol dire che siano entrambi negativi ( link )