Eigene Webservices entwickeln

In diesem Board könnt Ihr alle "allgemeinen" Fragen zum Thema MyOOS stellen.
Antworten
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hallo,

normalerweise verwenden Shopbetreiber die NuSoap Klasse in ihrem Online Shop für die
Anbindung an Payment - Lösungen so z.B bei iclear

http://foren.myoos.de/index.php?showtopic=112


Als MyOOS Shopbetreiber sollte man aber seinen Kunden auch einen eigenen WebService anbieten ;)
Die Entwicklung eines WebServices mit MyOOS ist kein Problem.


Eine Einführung bei Wiki
http://de.wikipedia.org/wiki/SOAP
und
http://www.torsten-horn.de/techdocs/soap.htm


Im Forum habe ich Auszüge aus einem
Soap Server
http://foren.myoos.de/index.php?showtopic=162

und
SoapClient
http://foren.myoos.de/index.php?showtopic=161

veröffentlicht

Und die Nutzung von Soap in Office hier
http://foren.myoos.de/index.php?showtopic=163



Für den Workshop ist eine aktuelle PHP 5.x Version notwendig.
Auf Feedback bin ich immer neugierig.
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Wir installieren einen Cleint ;)

Bei Amazon würde der Cleint so aussehen

<!--c1--><div class='codetop'>QUELLTEXT[/align]<div class='codemain'><!--ec1-->$wsdl_url =
"http://soap.amazon.com/schemas3/AmazonWebServices.wsdl";
$client = new SoapClient($wsdl_url);
var_dump($client->__getFunctions());<!--c2-->[/align]<!--ec2-->

Ausgabe

array(26) {
[0]=>
string(70) "ProductInfo KeywordSearchRequest(KeywordRequest $KeywordSearchRequest)"
[1]=>
string(79) "ProductInfo TextStreamSearchRequest(TextStreamRequest $TextStreamSearchRequest)"
[2]=>
string(64) "ProductInfo PowerSearchRequest(PowerRequest $PowerSearchRequest)"
[3]=>
string(79) "ProductInfo BrowseNodeSearchRequest(BrowseNodeRequest $BrowseNodeSearchRequest)"
[4]=>
string(61) "ProductInfo AsinSearchRequest(AsinRequest $AsinSearchRequest)"
[5]=>
string(75) "ProductLineArray BlendedSearchRequest(BlendedRequest $BlendedSearchRequest)"
[6]=>
string(58) "ProductInfo UpcSearchRequest(UpcRequest $UpcSearchRequest)"
[7]=>
string(58) "ProductInfo SkuSearchRequest(SkuRequest $SkuSearchRequest)"
[8]=>
string(67) "ProductInfo AuthorSearchRequest(AuthorRequest $AuthorSearchRequest)"
[9]=>
string(67) "ProductInfo ArtistSearchRequest(ArtistRequest $ArtistSearchRequest)"
[10]=>
string(64) "ProductInfo ActorSearchRequest(ActorRequest $ActorSearchRequest)"
[11]=>
string(85) "ProductInfo ManufacturerSearchRequest(ManufacturerRequest $ManufacturerSearchRequest)"
[12]=>
string(73) "ProductInfo DirectorSearchRequest(DirectorRequest $DirectorSearchRequest)"
[13]=>
string(83) "ListingProductDetails ExchangeSearchRequest(ExchangeRequest $ExchangeSearchRequest)"
[14]=>
string(76) "ProductInfo ListManiaSearchRequest(ListManiaRequest $ListManiaSearchRequest)"
[15]=>
string(73) "ProductInfo WishlistSearchRequest(WishlistRequest $WishlistSearchRequest)"
[16]=>
string(90) "SellerProfile SellerProfileSearchRequest(SellerProfileRequest $SellerProfileSearchRequest)"
[17]=>
string(68) "SellerSearch SellerSearchRequest(SellerRequest $SellerSearchRequest)"
[18]=>
string(88) "MarketplaceSearch MarketplaceSearchRequest(MarketplaceRequest $MarketplaceSearchRequest)"
[19]=>
string(79) "ProductInfo SimilaritySearchRequest(SimilarityRequest $SimilaritySearchRequest)"
[20]=>
string(83) "ShoppingCart GetShoppingCartRequest(GetShoppingCartRequest $GetShoppingCartRequest)"
[21]=>
string(89) "ShoppingCart ClearShoppingCartRequest(ClearShoppingCartRequest $ClearShoppingCartRequest)"
[22]=>
string(98) "ShoppingCart AddShoppingCartItemsRequest(AddShoppingCartItemsRequest $AddShoppingCartItemsRequest)"
[23]=>
string(107) "ShoppingCart RemoveShoppingCartItemsRequest(RemoveShoppingCartItemsRequest $RemoveShoppingCartItemsRequest)"
[24]=>
string(107) "ShoppingCart ModifyShoppingCartItemsRequest(ModifyShoppingCartItemsRequest $ModifyShoppingCartItemsRequest)"
[25]=>
string(118) "GetTransactionDetailsResponse GetTransactionDetailsRequest(GetTransactionDetailsRequest $GetTransactionDetailsRequest)"
}
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Für den WebService habe ich die Subdomains soap für den WebService eingereichtet.

Damit der Cleint für den Anwender übersichtlicher bleibt verwende ich WSDL auf dem Server.
http://soap.myoos.de/wsdl/testserver.wsdl

cleint.php einfach auf dem eigenen Rechner ablegen
<!--c1--><div class='codetop'>QUELLTEXT[/align]<div class='codemain'><!--ec1--> $client = new SoapClient("http://soap.myoos.de/wsdl/testserver.wsdl",
array('soap_version' => SOAP_1_2,'trace' => 1 ));

echo("\nDumping client object functions:\n");
var_dump($client->__getFunctions());<!--c2-->[/align]<!--ec2-->

Ausgabe
Damit erhält der Kunde eine Liste der SOAP-Funktionen zurück. Diese Funktion ist nur
im WSDL-Modus verfügbar.

Information im PHP-Handbuch
http://de3.php.net/manual/de/function.s ... ctions.php


Wir erhalten un unserem Server zurück
Dumping client object functions:
array(1) {
[0]=>
string(30) "string hello(string $reqParam)"
}

mit __soapCall rufen wir die Funktion auf


cleint.php
<!--c1--><div class='codetop'>QUELLTEXT[/align]<div class='codemain'><!--ec1--> $client = new SoapClient("http://soap.myoos.de/wsdl/testserver.wsdl",
array('soap_version' => SOAP_1_2,'trace' => 1 ));

$return = $client->__soapCall("hello",array("world"));
echo("\nReturning value of __soapCall() call: ".$return);<!--c2-->[/align]<!--ec2-->

http://de3.php.net/manual/de/function.s ... t-call.php

Ausgabe
Returning value of __soapCall() call: Hello world! - With WSDL

mit __getLastRequestHeaders können wir uns den den
SOAP-Anfrage-Header anzeigen lassen


cleint.php
<!--c1--><div class='codetop'>QUELLTEXT[/align]<div class='codemain'><!--ec1--> $client = new SoapClient("http://soap.myoos.de/wsdl/testserver.wsdl",
array('soap_version' => SOAP_1_2,'trace' => 1 ));

$return = $client->__soapCall("hello",array("world"));

echo("\nDumping request headers:\n"
.$client->__getLastRequestHeaders());<!--c2-->[/align]<!--ec2-->


http://de3.php.net/manual/de/function.s ... eaders.php
Dumping request headers:
POST /test/server.php HTTP/1.1
Host: soap.myoos.de
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.2.6
Content-Type: application/soap+xml; charset=utf-8; action=""
Content-Length: 459
mit __getLastRequest erhalten wir die letzte SOAP-Anfrage zurück

<!--c1--><div class='codetop'>QUELLTEXT[/align]<div class='codemain'><!--ec1--> echo("\nDumping request:\n".$client->__getLastRequest());<!--c2-->[/align]<!--ec2-->
Dumping request headers:
POST /test/server.php HTTP/1.1
Host: soap.myoos.de
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.2.6
Content-Type: application/soap+xml; charset=utf-8; action=""
Content-Length: 459
Dumping request:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope
xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="urn:xmethodsTestServer"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
<env:Body>
<ns1:hello
env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<reqParam xsi:type="xsd:string">world</reqParam>
</ns1:hello>
</env:Body>
</env:Envelope>
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Den Cleint für den WebService liegt hier zum Download

http://www.myoos.de/service/soap/client.txt
Antworten