2012-01-26 3 views
4

Can REST Le service Web (qui produit généralement par exemple JSONs) gère et renvoie les grandes données d'entrée/sortie binaires.Service REST et gros fichiers

Je veux dire, appeler un service REST par un HTTP POST fournissant un gros fichier et ensuite lire le gros résultat en arrière? Est-ce que REST est ok pour ça? ("Big" = quelques mégaoctets)

+0

Seulement quelques mégaoctets. – Cartesius00

+0

L'architecture REST n'est limitée à aucun type de média. –

Répondre

3

Avec les sérialiseurs de texte tels que JSON et XML, vous obtiendrez une augmentation d'environ 33% de la taille des fichiers sur le réseau, car les données binaires doivent être codées en Base64. Il existe des protocoles plus optimisés tels que MTOM pour gérer ce scénario. WCF supports MTOM sortie de l'emballage.

+0

Merci. Une question, JSON a le support de données binaires du tout? – Cartesius00

+0

@James, JSON est du texte, vous aurez donc besoin d'encoder les données binaires à une représentation de texte qui est généralement Base64 conduisant à une augmentation significative de la taille du message. –

+0

Et sans JSON, REST peut-il retourner les données binaires "directement" en utilisant HTTP GET? – Cartesius00

3

Les architectures REST sont tout à fait capables d'utiliser HTTP pour servir application/octet-stream, qui est juste un flux d'octets. HTTP peut très sûrement servir de très gros fichiers.

2

Étant donné que REST est principalement un service sur HTTP, les avantages et limitations standard de HTTP s'appliquent également aux services REST. Vous pouvez envoyer des fichiers volumineux de quelques Mo en tant qu'APPT sur API REST d'une manière similaire à celle que l'on télécharge un fichier volumineux dans une application Web.