Question

Je suis la construction d'un service REST d'accepter des objets contenant Foo un mélange de cordes et données binaires. C'est le XML que je suis arrivé à ce jour.

<foo>
     <text>regular text</text>
     <text mime="application/octet-stream">base64 encododed binary data</text>
</foo>

Est-ce une bonne idée ou sont-il des inconvénients inline de grandes quantités (SCG) de données binaires?

En tant que design détail mineur, je suis en train de régler entre l'utilisation <text mime=".."/> ou un <binary>...</binary> nom spécifique pour les données binaires. Ce qui serait plus cohérent?

Était-ce utile?

La solution

Je recommande notamment dans votre demande / réponse que l'emplacement de xml où vous allez stocker les données binaires que vous voulez transmettre et récupérer que les données d'exécution une autre demande. Les inconvénients de cette solution serait d'exécuter une autre demande, mais les pros sont de votre côté:

  • pas besoin de linéariser / désérialiser votre 64 cordes
  • test plus facile de votre ws de repos
  • xml moins pléthorique

Autres conseils

HTTP est conçu pour des charges utiles d'émission de longueur arbitraire. L'envoi de données MBs sera bien. Transmettre les données par encodage base64 n'est pas conseillé parce qu'il sera augmentation le nombre d'octets que vous devez envoyer sur le fil, le débit dégradant.

Je suggère au contraire que vous considérez comme un type MIME multipart plutôt que XML.

quel est votre conteneur webservice? le format xml serait généré par votre sérialiseur binaire. axis2 peut être bon pour vous. il est basé sur l'axiome, offrant un soutien binaire directe

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top