GOV/Webservice: Unterschied zwischen den Versionen

aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
< GOV
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Über mehrere Webserivces erhält man praktische den gleichen Zugriff auf die Daten des GOV, wie ihn auch das Webfrontend bietet.
== Dienste ==
Welche Dienste werden von den Webservices zur Verfügung gestellt? Es gibt drei verschiedenen Webserivces:
* SimpleService - als Suchergebnis werden Listen mit GOV-Kennungen zurückgeliefert
* ComplexService - als Suchergebnis werden Listen zurückgeliefert, die die Objekte selbst enthalten
* ChangeService - mit diesem Dienst können Daten im GOV verändert werden
=== Lesezugriff ===
Die vom SimpleService und ComplexService zur Verfügung gestellten Funktionen sind (bis auf die Art des Rückgabewert) identisch, so daß sie hier gemeinsam beschrieben werden.
* checkObjectId
* getArchive
* getChildObjects
* getName
* getObject
* getRecordsForObject
* getSource
* listTopLevelObjects
* lookupObject
* searchByBoundingBox
* searchByName
* searchDescendantsByName
* searchDescendantsByName1
* searchDescendantsByType1
* searchRelatedByName
== Schreibzugriff ==
Der Schreibzugriff ist relativ übersichtlich, der beinhaltet drei Operationen zum Speichern von Orten, Quellen und Archiven. Als erster Parameter wird das zu speichernde Objekt übergeben, der zweite und dritte Parameter sind Benutzernamen und Paßwort des Bearbeiters.
* saveObject
* saveSource
* saveArchive
== Kompatibilität ==
== Kompatibilität ==
Mit folgenden Frameworks wurde der GOV-Webserivce getestet:
Mit folgenden Frameworks wurde der GOV-Webserivce getestet:

Version vom 30. Januar 2007, 19:02 Uhr

Über mehrere Webserivces erhält man praktische den gleichen Zugriff auf die Daten des GOV, wie ihn auch das Webfrontend bietet.

Dienste

Welche Dienste werden von den Webservices zur Verfügung gestellt? Es gibt drei verschiedenen Webserivces:

  • SimpleService - als Suchergebnis werden Listen mit GOV-Kennungen zurückgeliefert
  • ComplexService - als Suchergebnis werden Listen zurückgeliefert, die die Objekte selbst enthalten
  • ChangeService - mit diesem Dienst können Daten im GOV verändert werden

Lesezugriff

Die vom SimpleService und ComplexService zur Verfügung gestellten Funktionen sind (bis auf die Art des Rückgabewert) identisch, so daß sie hier gemeinsam beschrieben werden.

  • checkObjectId
  • getArchive
  • getChildObjects
  • getName
  • getObject
  • getRecordsForObject
  • getSource
  • listTopLevelObjects
  • lookupObject
  • searchByBoundingBox
  • searchByName
  • searchDescendantsByName
  • searchDescendantsByName1
  • searchDescendantsByType1
  • searchRelatedByName

Schreibzugriff

Der Schreibzugriff ist relativ übersichtlich, der beinhaltet drei Operationen zum Speichern von Orten, Quellen und Archiven. Als erster Parameter wird das zu speichernde Objekt übergeben, der zweite und dritte Parameter sind Benutzernamen und Paßwort des Bearbeiters.

  • saveObject
  • saveSource
  • saveArchive

Kompatibilität

Mit folgenden Frameworks wurde der GOV-Webserivce getestet:

Framework und Version getestet vollständig getestet Bemerkungen Benutzer
Axis 1.1 True.png mit Java 1.4 Jzedlitz
Axis 1.4 True.png beim Klassen-Generieren Option "-w" Jzedlitz
PHP 5 True.png Jzedlitz


Client

PHP 5

Mit PHP 5 ist ein Client für den GOV-Webservice ganz schnell geschrieben:

<?php
$soapclient = new SoapClient('http://gov.genealogy.net/services/ComplexService?wsdl');
$list =$soapclient->searchByName('Heidkate');
?>

Ja, das ist alles! :-)

Axis 1.3, Axis 1.4

WSDL2Java hat Probleme mit dem Element-Namen "last-modification". Komischerweise funktioniert es richtig, wenn man WSDL2Java die Option "-w" mitgibt.

Generieren der Java-Klassen:

java org.apache.axis.wsdl.WSDL2Java -w http://gov.genealogy.net/services/ComplexService?wsdl

Ein kleiner Test-Client:

import net.genealogy.gov.ws.ComplexService_PortType;
import net.genealogy.gov.ws.ComplexService_ServiceLocator;

public class Client {
    public static void main(String[] args) throws Exception {
        ComplexService_PortType cs = new ComplexService_ServiceLocator()
                .getComplexService();

        cs.searchByName("Heidkate");
    }
}

SOAP-Nachrichten

Zum Debuggen habe ich hier die übertragenen SOAP-Nachrichten eingefügt, wie sie von verschiedenen Webservice-Frameworks generiert werden.

Axis 1.4

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <searchByName xmlns="http://gov.genealogy.net/ws">
      <placename xmlns="">Heidkate</placename>
    </searchByName>
  </soapenv:Body>
</soapenv:Envelope>

PHP 5

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://gov.genealogy.net/ws">
  <SOAP-ENV:Body>
    <ns1:searchByName>
      <placename>Heidkate</placename>
    </ns1:searchByName>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Beispiele

  • Position eines Ortes auslesen:
  • Position eines Ortes setzen: