Appeler un service Web qui acceptent tableau ou liste d'une classe en Java

voix
0

Je veux créer un service Web en utilisant C #. En service web, j'ai une méthode Web qui acceptent la liste d'une classe spécifique:

[DataContract]
public class CompositeType
{
    string stringValue = Hello ;

    [DataMember]
    public string StringValue
    {
        get { return stringValue; }
        set { stringValue = value; }
    }

    [DataMember]
    public List<Product> Products { get; set; }
}

[DataContract]
public class Product
{
    [DataMember]
    public int PID { get; set; }

    [DataMember]
    public string PName { get; set; }
}

et ma méthode web:

[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);

Je veux publier ce service à l' aide BasicHttpBindingque les utilisateurs Java peuvent appeler aussi. Maintenant , puisque le programmeur Java est pas autour de moi, je voulais demander à ceux qui ont l'expérience de le faire:

1) Est- programmeurs Java appeler ma méthode web qui accepte List<Product>?

2) Dois - je changer Listpour Array?

Merci pour votre contribution

Créé 07/11/2018 à 20:15
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
1

Comme avec le client .Net appelant WCF en utilisant l'outil Svcutil, la plupart des utilisateurs Java utilisent la bibliothèque asis2 qui est un moteur de WebService pour appeler le service Web.
WebService est une spécification que tout service qui implémente on peut l'appeler WebService. ils utilisent un message SOAP basé sur XML pour communiquer. ils utilisent WSDL pour décrire les détails du service, qui est utilisé pour générer la classe proxy client. La raison pour laquelle WCF peut être appelé à travers les frontières de services par différentes plates - formes est qu'il est un service Web. Bien qu'il puisse y avoir différents types de données sur différentes plates - formes, aussi longtemps que nous précisons comment représenter en XML et comment sérialiser, le service peut être appelé correctement par les plates - formes autres, par défaut, la liste est spécifiée à sérialisés à l' aide un tableau de dimension.

Créé 08/11/2018 à 14:13
source utilisateur

voix
1

On peut supposer que votre API HTTP sérialise ce que JSON (ou peut - être XML). Dans les deux cas, les bibliothèques telles que Jackson peut gérer très bien, et la plupart des clients REST même gérer cette partie automatiquement. Le respect des normes est la règle, et aussi longtemps que votre List<Product>est converti en / à partir d' un réseau régulier JSON, tout devrait fonctionner sans problème.

JSON n'a pas types de listes séparées, juste le simple tableau, donc soit tableau ou sérialisation à base de liste devrait être équivalent.

Comme une note, la plupart des API utilisent soit camelCaseou snake_casepour des propriétés, de sorte que vos noms de propriété (en JSON) seraient censés être stringValue, products, pidet pName.

Créé 07/11/2018 à 20:38
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more