Questo mi ha sconcertato per un po '.
Ad esempio, abbiamo un'API REST che fornisce contenuti di base a un sistema, consumando e producendo JSON. A questo endpoint produce un URL per un'immagine e una descrizione e si trova così: // localhost / myApi / pictures / 1
{
id: 1,
description: "This is a pretty picture of a daisy",
URL: <OUR URL>
}
Ora OUR_URL dovrebbe puntare a una posizione sull'API, ad esempio // localhost / myApi / files / pictures / 1 che restituisce un JPG (l'applicazione dietro l'API legge il contenuto fisico del file e lo trasmette nuovamente al client ). Questo è ovviamente diverso dal resto dell'API che sta producendo risposte JSON e ci sarà un sovraccarico dalla lettura e dallo streaming del file reale.
In alternativa, OUR_URL dovrebbe puntare a un URL esterno all'ambito del servizio REST, quindi //localhost/files/pictures/1.jpg dove legge direttamente il file.
Quindi la domanda è:
Un'API RESTful dovrebbe essere in grado di restituire file o solo una posizione?