2009-07-09 5 views
1

Simple. J'ai créé un modèle d'entité LINQ-TO-SQL, créé un site Web, ajouté un service de données (* .svc) à ce site et vérifié qu'il fonctionne en écrivant une simple application de console .NET. Le service fonctionne bien et ne peut pas être modifié.Consommation d'un service de données ADO.NET à partir d'une application Delphi WIN32. Comment?

Maintenant, je vais écrire une application Delphi (2007) pour WIN32 qui devra appeler ce service de données. Et tandis que Delphi n'a pas de gros problèmes lors de l'importation d'un service SOAP, il ne peut pas importer ce service car il ne fournit pas de WSDL ...

Donc, deux options. Je pourrais trouver comment générer un WSDL basé sur ce service de données ou je vais devoir trouver un autre moyen de consommer ce service. (Ou tout simplement abandonner, mais je déteste quitter ce défi.) Donc, tout conseil?

Répondre

1

ADO.NET Data Services sont REST services. Ils ne sont pas des WebServices SOAP et je ne pense pas que REST utilise WSDL. Vous pouvez appeler les services REST à partir de Delphi à l'aide de HTTP GET/PUT/POST/DELETE. Vous pouvez utiliser TIdHTTPClient d'Indy. Voir http://msdn.microsoft.com/en-us/library/cc668786.aspx pour les exemples d'URL. Les résultats sont au format Atom, qui est un format XML. Vous pouvez l'analyser avec TXMLDocument. Ils peuvent également renvoyer JSON.

+0

Ouais, ce serait "l'autre sens" que je craignais. –

1

Peut-être que vous pouvez utiliser le projet Jedi "url grabber" composants pour consommer le service. J'ai réussi à obtenir des données de partage en direct en les utilisant dans le passé. Je ne sais pas exactement comment fonctionne votre installation, mais peut-être que cela peut être utile.

http://www.delphi-jedi.org/

+0

Eh bien, je préfère simplement importer la bibliothèque de type "winhttp.dll" pour récupérer des pages du Web. Cela permet aussi des choses comme GET, POST, PUT, etc. Un autre avantage est que cela va utiliser les paramètres IE par défaut pour accéder à Internet, donc pas beaucoup de soucis au sujet des proxies et d'autres choses. J'ai déjà utilisé Jedi, mais pour certaines applications, je pense que cela ajoute trop de frais généraux. Toujours, bonne réponse. –

0

Vous devriez également regarder synapse, une petite bibliothèque facile à utiliser qui fonctionne bien avec REST. La dernière version, qui peut être téléchargée via SVN, fonctionne bien dans Delphi 2009.