Home. 
.

transparent

transparent

transparent

Stellen Sie eine Verbindung zu einem bestehenden Webservice her: Probieren Sie die GoogleSearch API aus

Hinweis:  Google stellt keine neuen IDs für die Google SOAP Search API zur Verfügung. Wenn Sie von Google bereits eine ID erhalten haben, funktioniert die API weiterhin und Sie können das unten beschriebene Beispiel nachvollziehen. Wenn Sie keine ID für die Google SOAP Search API haben, bietet dieses Beispiel zumindest eine schrittweise Anleitung zur Entwicklung Ihrer eigenen Webservice Client-Schnittstelle mit XMLSpy.



Während auf den anderen Seiten in diesem Abschnitt beschrieben wird, wie ein Webservice von Grund auf neu erstellt wird, erfahren Sie hier, wie Sie sich mit Webservices vertraut machen können, indem Sie mit Hilfe der Webservice-Funktionen von XMLSpy eine Verbindung zu einem Webservice herstellen, der im Internet bereits zur Verfügung steht. Sie können Webservice SOAP Requests erstellen, sie an den Live-Webservice senden und die Antworten überprüfen.

Es gibt eine ganze Reihe von Webservices, einige von führenden Unternehmen wie z.B. Google®, eBay®, Amazon®, Yahoo® und anderen. In deren APIs wird beschrieben, wie Unternehmen oder Einzelpersonen diese Webservices einsetzen können, um einige der jeweiligen Business-Funktionen in neue Websites oder maßgeschneiderte Applikationen integrieren zu können.

Als Beispiel finden Sie hier eine Beschreibung der einzelnen Schritte, wie man in XMLSpy eine einfache Suchfunktion erstellt, die eine Verbindung zum GoogleSearch Webservice herstellt. Falls Sie die XMLSpy® 2008 Enterprise Edition noch nicht installiert haben, können Sie sie hier herunterladen.

Google stellt die GoogleSearch API Benutzern eines kostenlosen Google-Account für nicht kommerzielle Zwecke zur Verfügung. D.h. der Webservice selbst ist öffentlich, doch mittels des Account Key ist der Zugriff auf bekannte Benutzer beschränkt. Jeder Webservice Request muss als einen der Parameter einen gültigen Account Key enthalten. Auf der Google-Website können Sie sich für einen Account registrieren und erhalten nähere Informationen zum GoogleSearch Webservice. Die GoogleSearch API ist ein kostenloser Service, der von Google nur für nicht-kommerzielle Zwecke zur Verfügung gestellt wird und den Nutzungsbedingungen von Google unterliegt.

(Wenn Sie sich bei Google nicht registrieren möchten, steht ihnen im Tutorial der XMLSpy Online-Hilfe eine detaillierte Anleitung zur Verfügung, wie man eine Verbindung zu einem TimeService Webservice herstellt, der als Ergebnis die aktuelle Zeit in verschiedenen Zeitzonen liefert.)

Die WSDL-Datei zur Definition von GoogleSearch ist auf dem Google Server gespeichert, auf dem der Webservice läuft. Zum Öffnen der WSDL-Datei können wir die XMLSpy Menüoption Datei/URL öffnen verwenden:

Web services example Open URL

Bei Ansicht der WSDL-Datei in der WSDL-Ansicht von XMLSpy sehen Sie, dass sie auf der rechten Seite unter PortTypes die folgenden drei Operationen enthält:

  • doGetCachedPage
  • doSpellingSuggestion
  • doGoogleSearch

Web services example GoogleSearch WSDL

Da der Google-Suchmechanismus allgemein gebräuchlich ist, ist die Funktionalität der Service-Operation doGoogleSearch einfach auszuführen.

Um den Service aufzurufen, wählen Sie das XMLSpy SOAP-Menü aus und erstellen einen neuen SOAP Request für die Operation doGoogleSearch:

Web services example Create SOAPdialog

Web services example Select operation dialog

XMLSpy ruft die remote WSDL-Datei ab und erstellt eine SOAP Request-Vorlage für die Operation doGoogleSearch, die wir nun in verschiedenen Ansichten überprüfen können. In der Browser-Ansicht wird die Response in einer etwas anderen Farbcodierung als in der Text-Ansicht angezeigt. In der Browser-Ansicht sind die erforderlichen Suchparameter schwarz und fett.

Web services example new SOAP request

Wir können auch den Request in der XMLSpy Grid-Ansicht erweitern, um seine Struktur anzuzeigen.

Web services example View Request Grid

Egal welche Methode wir wählen, bei Analyse der SOAP Request-Vorlage stellt sich heraus, dass für Google mehr Angaben als ein einfacher Suchstring erforderlich sind! Wir könnten nun natürlich die Webservice-Dokumentation studieren, um uns über alle Parameter zu informieren. Einfacher ist es aber, ein Codefragment des unten stehenden XML-Codes (den wir anhand des Google Request-Beispiels adaptiert haben) zu kopieren und in die Text-Ansicht von XMLSpy zu kopieren, wie in der Abbildung unten gezeigt. Sie müssen dann nur noch Ihren eigenen Account Key und den Search-String editieren. Suchen wir einmal nach "Ansel Adams".

<key xsi:type="xsd:string">ENTER YOUR OWN ACCOUNT KEY HERE</key>
<q xsi:type="xsd:string">Ansel Adams</q>
<start xsi:type="xsd:int">0</start>
<maxResults xsi:type="xsd:int">10</maxResults>
<filter xsi:type="xsd:boolean">true</filter>
<restrict xsi:type="xsd:string"/>
<safeSearch xsi:type="xsd:boolean">true</safeSearch>
<lr xsi:type="xsd:string"/>
<ie xsi:type="xsd:string">latin1</ie>
<oe xsi:type="xsd:string">latin1</oe>

Web services example SOAP request 2

Wenn wir mit den Parametern zufrieden sind, können wir den Request über das XMLSpy Menü SOAP an den GoogleSearch Webservice senden:

Web services example Send request menu

Haben Sie je auf eine einfache Frage eine Antwort erhalten, die viel komplizierter als erwartet war? Auf unseren Request hin wird vom Google Webservice ein SOAP Response in Form eines umfangreichen XML-Dokuments generiert. XMLSpy öffnet diesen Response automatisch in einem neuen Fenster:

Web services example Portion of SOAP reply

(Beachten Sie die Größe und die Position des Ziehpunkts in der Bildlaufleiste rechts oben. Das gesamte Response-Dokument ist 167 Zeilen lang.)

Mit Hilfe einiger einfacher XSL-Befehle können Sie die interessanten und relevanten Informationen in ein HTML-Dokument konvertieren, das im XMLSpy Browser-Fenster als Webseite angezeigt wird.

Wenn Sie das Beispiel durchspielen, öffnen Sie ein neues XSLT Stylesheet Version 1.0 in XMLSpy und fügen Sie die unten stehenden Befehle ein:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
  <xsl:template match="/">
      <p>Your search took <xsl:value-of select="//searchTime"/> seconds</p>
      <p/>
      <p>Estimated total number of results: <xsl:value-of select="//estimatedTotalResultsCount"/>
      </p>
      <xsl:for-each select="//item">
        <xsl:call-template name="googleResult"/>
      </xsl:for-each>
    </xsl:template>
    <xsl:template name="googleResult">
    <p>
      <a>
        <xsl:attribute name="href"><xsl:value-of select="URL"/></xsl:attribute>
        <xsl:value-of select="title" disable-output-escaping="yes"/>
      </a>
    </p>
    <p>
      <xsl:value-of select="snippet" disable-output-escaping="yes"/>
    </p>
  </xsl:template>
</xsl:stylesheet>

Web services example XSL for Browser

Diese Befehle können für die spätere Wiederverwendung in einer XLST-Datei gespeichert werden. Anschließend können Sie die XSLT-Datei über das Menü XSL/Query den empfangenen Daten zuweisen, wobei die Response-Datei sich im aktiven Fenster befindet.

Web services example Assign XSL menu

Web services example Assign XSLT

Nachdem Sie der SOAP Response-Datei der XSLT-Datei zugewiesen haben, klicken Sie auf das XMLSpy Register Browser, um die Transformation durchzuführen und die HTML-Datei anzuzeigen, wie sie im Internet Explorer zu sehen wäre.

Web services example Reply in Browser

Sie können sogar auf die Hyperlinks klicken, um eine der Websites im XMLSpy Browser-Fenster zu öffnen. (Falls Sie auf einen der Links klicken, klicken Sie anschließend in der XMLSpy Browser-Symbolleiste auf den Zurück-Pfeil oder auf das Register "Text", um zur Response-Datei zurückzukehren.)

Wenn Sie später an Ihren eigenen Webservice-Projekten arbeiten, werden Sie höchstwahrscheinlich ähnliche Transformationen an SOAP Responses durchführen wollen, um die Daten zu formatieren bzw. in einem für Ihre Applikation geeigneten Format darzustellen.

Wenn Sie das Beispiel bis jetzt durchgespielt haben, können Sie Ihre Suchanfrage nun ändern und den Request erneut senden. Jedes Mal, wenn Sie eine Abfrage an den Webservice senden, erhalten Sie eine neue Response-Datei. Anstatt jeder neuen Response-Datei die XSLT-Datei über das Menü zuzuweisen, können Sie den oben (meist in Zeile 2) eingefügten Zuweisungscode aus der ersten Response auch einfach mit Strg-C kopieren und ihn in jeder neuen Response mit Strg-V einfügen. Aber übertreiben Sie es nicht - der GoogleSearch Webservice limitiert jeden Account auf 1.000 Suchabfragen pro Tag!

Hier ein Beispiel für Code, der eine XSLT-Datei in einer Response von GoogleSearch zuweist:

Web services example XSLT code Paste

Fassen wir zusammen. Wir haben XMLSpy verwendet, um:

  • eine Verbindung mit einem Webservice herzustellen
  • die WSDL-Datei des Webservice zu analysieren, um zu ermitteln, welche Operationen sie unterstützt
  • eine Operation auszuwählen und einen SOAP Request zu erstellen
  • den SOAP Request an den Webservice zu schicken und eine Response zu empfangen
  • die relevanten Teile des Response-Dokuments mittels XSLT in einem brauchbaren Format zu formatieren

Mit Hilfe derselben Strategie können Sie sich über andere bestehende Webservices informieren, ob diese nun von anderen öffentlichen Unternehmen bereitgestellt oder von Projektteams ihrer eigenen Firma entwickelt wurden. Mit XMLSpy ist das alles kein Problem.

Unter den nachstehenden Links finden Sie nähere Informationen über die leistungsstarken Webservice Tools in Altova-Produkten:

Google, eBay, Amazon, Yahoo! sind in den USA und/ oder in anderen Ländern Markenzeichen und/ oder eingetragene Markenzeichen der jeweiligen Unternehmen. Die Namen anderer Unternehmen, Produkte und Services können ebenfalls Markenzeichen ihrer Eigentümer sein.



transparent
Web services whitepaper
Print
Mail
Digg
delicious
.
.
.

transparent

transparent