Mon premier service web avec google.
Par Nicolas, jeudi 2 mars 2006 à 11:37 :: geek stuff :: #301 :: rss
Les web services, les architectures orientées services, c'est hype. Google s'y est mis il y a un bon bout de temps, et propose aux développeurs un kit avec tout le nécessaire pour intégrer des résultats de recherche (google) au sein d'applicatifs developpé dans le langage de leurs rêves.
C'est un des intérêts majeurs des web services, par le biais de l'interface, des clients Perl discutent avec un service écrit en C#, ou un client DotNet interroge un service Java, bref tout est permis.
Ok mais quelle différence avec RPC (remote procedure call) ??? la réponse est bien sur...XML. Enfin les services parlent une langue commune. Il y a également des services périphériques, d'annuaire par exemple, qui permettent d'identifier les web services pour savoir comment les interroger ensuite, mais je m'égare.
Pour nous le client sera celui écrit en Java...bien sur.
Rien d'autre que le sdk Java de Sun ne sera nécessaire, normalement présent sur la machine, avec un peu de chance...
Il faut télécharger le kit fourni par google : le kit
Ensuite on dézippe tout ça dans le répertoir XXX. On ouvre une fenêtre de commande, on va dans XXX, et la on vérifie la présence de l'archive jar : com.google.soap.search.GoogleAPIDemo
Voila on est chaud chaud chaud, le résultat est proche. Habituellement, il faut une clé développeur pour interroger le web service, fournie gratuitement par google, mais limitée à 1000 appels par jour. Bref n'abusez pas de ma clé, j'en ai parfois besoin. Si vous voulez la vôtre , c'est ici.
Donc avec ma clé, pour voir le résultat tout de suite now, il suffit de taper dans votre fenêtre de commande la ligne suivante (vous êtes bien dans le répertoire contenant l'archive citée ci-dessus hein?) :
java Classe_de_demo_fournie cle_google search "mes mots clés de recherche"
Ce qui donne par exemple :
java -classpath googleapi.jar com.google.soap.search.GoogleAPIDemo
xraBigFQFHJWJdNWUeUC68rw58769i+4 search "le monde"
On obtient alors les résultats de la recherche sur la clé "le monde"...
Si proxy il y a, il est possible de rajouter les options suivantes, interprétées par la machine virtuelle Java (la logique de gestion du proxy est bien au niveau de Java et non dans le programme fourni par google) : (Plus d'infos sur l'utilisation des proxys avec Java)
java -cp googleapi.jar -Dhttp.proxyHost=myproxywww -Dhttp.proxyPort=portXXX
com.google.soap.search.GoogleAPIDemo xraBigFQFHJWJdNWUeUC68rw58769i+4 search "le monde"
A noter la syntaxe sympathique qui permet de s'affranchir de l'écriture d'un fichier Manifest : on spécifie dans la ligne de commande le classpath, en l'occurence le .jar, et la classe contenant le main...Marre des Manifest
Bon, ne pas se priver non plus de jouer un peu avec l'option "spell" :
java -cp googleapi.jar -Dhttp.proxyHost=myproxywww -Dhttp.proxyPort=portXXX
com.google.soap.search.GoogleAPIDemo xraBigFQFHJWJdNWUeUC68rw58769i+4 spell "frakois mitteran"
Résultat :
- Args = frakois miteran
- Spelling suggestion: francois mitterand
Trop fort !
Enfin, on peut remplacer par une troisième option qui renvoie une page en cache :
java com.google.soap.search.GoogleAPIDemo key cached /
Ca y est pour le premier web service. Plus qu'à dépiauter un peu le code de la classe com.google.soap.search.GoogleAPIDemo qui est d'une simplicité extrême.
Donc pas vraiment d'infos de ce coté là, la mécanique "web services" est cachée dans des classes qui viennent compilées dans l'archive.
Bon on a quand même fait tourner un premier code. Et ce code est réutilisable très aisément, je n'ai pas dit qu'il fallait le détourner hein...On pourrait par exemple par des interrogations récurrentes programmées en savoir un peu plus sur les google dances (mises à jour des datacenter de google) ou sur le nombre de pages indexées...On peut scruter un peu le référencement d'un site sur certains mots-clés, bref, beaucoup de portes ouvertes avec ce petit bout de code !
les méthodes sur l'objet GoogleSearchResult
retourné par google sont entre autres :
- getDocumentFiltering()
- getEndIndex()
- getEstimatedTotalResultsCount()
- getSearchTime()
Cheers !
And read more. On wikipedia.
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.