/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Offentlig webservice
Fra : YJ


Dato : 08-06-06 23:08

Jeg sidder og roder med webservices fra php og vil gerne forsøge at tilgå en
ude i verden for at teste det på andet end localhost.

xmethods bliver nævnt diverse steder men den side er vist død.

Kender I en service man kan tilgå?

YJ



 
 
Michael Rasmussen (08-06-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 08-06-06 23:26

On Fri, 09 Jun 2006 00:07:30 +0200, YJ wrote:

>
> Kender I en service man kan tilgå?
Du skal da være velkommen til at prøve nogen af mine. De er listet i
stigende sværhedsgrad:
http://www.datanom.net/~mir/exercise/helloserver.php?wsdl
http://www.datanom.net/~mir/exercise/hostinfoserver.php
http://www.datanom.net/~mir/server/uddiServer.php?wsdl
http://www.datanom.net/~mir/freedb/FreeDBServer.php?wsdl

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


YJ (08-06-2006)
Kommentar
Fra : YJ


Dato : 08-06-06 23:39


"Michael Rasmussen" <mir@miras.org> wrote in message
news:pan.2006.06.08.22.26.18.666430@miras.org...
> On Fri, 09 Jun 2006 00:07:30 +0200, YJ wrote:
>
> >
> > Kender I en service man kan tilgå?
> Du skal da være velkommen til at prøve nogen af mine. De er listet i
> stigende sværhedsgrad:
> http://www.datanom.net/~mir/exercise/helloserver.php?wsdl
> http://www.datanom.net/~mir/exercise/hostinfoserver.php
> http://www.datanom.net/~mir/server/uddiServer.php?wsdl
> http://www.datanom.net/~mir/freedb/FreeDBServer.php?wsdl


Fedt

takker,
YJ



YJ (09-06-2006)
Kommentar
Fra : YJ


Dato : 09-06-06 10:36


> http://www.datanom.net/~mir/freedb/FreeDBServer.php?wsdl

Denne var faktisk rigtigt sjov.

Jeg fik styr på at oprette nye albums og slette dem igen [1]

Den er superfed. Den opfylder lige præcis de krav jeg har til det data der
skal overføres, string, float og array of arrays.


Det der undrer mig en del er at der tilsyneladende er en del data i
WSDL-filen.
F.eks. hvilke genrer der er tilgængelige.
Men det betyder jo at der er vedligeholdelse af WSDL-filen, f.eks. er "Pop"
ikke med på listen.

Er det normalt at WSDL filen genereres dynamisk med data fra en database?
Jeg gætter på nej, da caching jo er slået til som standard.

Kan man ikke lave en generel WSDL fil der blot fordrer at genren er en
streng, men ikke tager yderligere hensyn eller er formålet med den at den
skal give maksimal sikkerhed for at data er validt og man mener så at det er
smartere at have datavalidering i WSDL end i php-koden?

(Den brokkede sig nu heller ikke over at jeg angav Pop)


Tak for hjælpen

YJ




[1]

$result = $client->insert (array( "ID" => time(),
"artist" => "Shakira",
"titel" => "Oral Fixation",
"genre" => "Pop",
"duration" => "01:34:22",
"tracks" => array (
array (

"titel" => "Hips Don't Lie",

"duration" => "00:04:13",

"artist" => "Shakira"
),

array (

"titel" => "La Tortura",

"duration" => "00:03:04",

"artist" => "Shakira"
),
)
));





Michael Rasmussen (09-06-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 09-06-06 11:25

On Fri, 09 Jun 2006 11:36:09 +0200, YJ wrote:

>
> Det der undrer mig en del er at der tilsyneladende er en del data i
> WSDL-filen.
> F.eks. hvilke genrer der er tilgængelige. Men det betyder jo at der er
> vedligeholdelse af WSDL-filen, f.eks. er "Pop" ikke med på listen.
>
At pop ikke er en mulighed, er en fejl. Typen genre er defineret i henhold
til freedb.org

> Er det normalt at WSDL filen genereres dynamisk med data fra en
> database? Jeg gætter på nej, da caching jo er slået til som standard.
>
WSDL-filen er ikke dynamisk generet. Den er håndkodet fra bunden af af
mig.

> Kan man ikke lave en generel WSDL fil der blot fordrer at genren er en
> streng, men ikke tager yderligere hensyn eller er formålet med den at
> den skal give maksimal sikkerhed for at data er validt og man mener så
> at det er smartere at have datavalidering i WSDL end i php-koden?
Grunden til at specificere hvilke muligheder en genre kan have i WSDL,
skyldes udelukkende, at på freedb.org findes en liste over, hvilke genre
der er tilladt at angive for en CD
>
> (Den brokkede sig nu heller ikke over at jeg angav Pop)
>
Det er fordi du har anvendt PHP, der ikke er typestærkt, og du har
formentligt også udeladt at anvende typen Category. Fejlen er så også,
at jeg ikke selv eksplicit kontrollere i min server, om den modtagne cd
også anvender en korrekt genre i henhold til WSDL - det må jeg lige
have fikset Forøvrigt ville min Java og C# klient ikke fremvise
indholdet af din cd, da den netop anvendte en, i forhold til WSDL, ulovlig
genre. Java og C# forholder sig strengt til WSDL. pop er nu tilføjet som
genre, hvorfor min Java og C# klient fungerer igen.

>
> Tak for hjælpen
>
Det var så lidt

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


YJ (09-06-2006)
Kommentar
Fra : YJ


Dato : 09-06-06 12:27

> At pop ikke er en mulighed, er en fejl. Typen genre er defineret i henhold
> til freedb.org

OK, men hvad nu hvis genre indeholdt data som hyppigt blev ændret.
Ville man så stadig vedligeholde listen i WSDL?
Jeg gætter på man så ville flytte logikken over i koden og i WSDL blot
anføre "string"?

YJ



Michael Rasmussen (09-06-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 09-06-06 13:06

On Fri, 09 Jun 2006 13:26:40 +0200, YJ wrote:

>
> OK, men hvad nu hvis genre indeholdt data som hyppigt blev ændret. Ville
> man så stadig vedligeholde listen i WSDL? Jeg gætter på man så ville
> flytte logikken over i koden og i WSDL blot anføre "string"?
Nej, hvis der er særlige forhold, der gør sig gældende, skal disse
fremgå af WSDL. Hvorledes ville klienten ellers vide, hvilke
informationer der kunne gemmes i typen genre. Genre skal opfattes som en
type, der er defineret i WSDL ved elementet Category, på samme måde som
at du ikke kan gemme en string i et integer element.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


YJ (09-06-2006)
Kommentar
Fra : YJ


Dato : 09-06-06 13:12


"Michael Rasmussen" <mir@miras.org> wrote in message
news:pan.2006.06.09.12.05.55.813402@miras.org...
> On Fri, 09 Jun 2006 13:26:40 +0200, YJ wrote:
>
> >
> > OK, men hvad nu hvis genre indeholdt data som hyppigt blev ændret. Ville
> > man så stadig vedligeholde listen i WSDL? Jeg gætter på man så ville
> > flytte logikken over i koden og i WSDL blot anføre "string"?

> Nej, hvis der er særlige forhold, der gør sig gældende, skal disse
> fremgå af WSDL. Hvorledes ville klienten ellers vide, hvilke
> informationer der kunne gemmes i typen genre. Genre skal opfattes som en
> type, der er defineret i WSDL ved elementet Category, på samme måde som
> at du ikke kan gemme en string i et integer element.

OK, så er jeg lidt mere med på hvordan man gør.

Giver det ikke problemer i praksis at man skal opdatere indholdet af sin
WSDL tit? (genre ændrer sig jo ikke, men en anden slags data kunne gøre det)

Klienten cacher jo WSDL og hvis den ændres hele tiden får den jo ikke
ændringerne med.

YJ




Michael Rasmussen (09-06-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 09-06-06 13:20

On Fri, 09 Jun 2006 14:11:58 +0200, YJ wrote:

> Giver det ikke problemer i praksis at man skal opdatere indholdet af sin
> WSDL tit? (genre ændrer sig jo ikke, men en anden slags data kunne gøre
> det)
>
Hvad forstår du ved tit?
Hvis der med tit menes fra gang til gang, er der noget galt med designet.
En variabel skifter vel heller ikke type fra kørsel til kørsel.
Hvis tit derimod betyder fra version til version, er dette fuldt lovligt.

> Klienten cacher jo WSDL og hvis den ændres hele tiden får den jo ikke
> ændringerne med.
Det kan du da blot slå fra - i selv php-filen:
ini_set("soap.wsdl_cache_enabled", "0");

Som standard caches WSDL-filer et døgn.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


YJ (09-06-2006)
Kommentar
Fra : YJ


Dato : 09-06-06 13:45


"Michael Rasmussen" <mir@miras.org> wrote in message
news:pan.2006.06.09.12.20.07.302042@miras.org...
> On Fri, 09 Jun 2006 14:11:58 +0200, YJ wrote:
>
> > Giver det ikke problemer i praksis at man skal opdatere indholdet af sin
> > WSDL tit? (genre ændrer sig jo ikke, men en anden slags data kunne gøre
> > det)
> >
> Hvad forstår du ved tit?
> Hvis der med tit menes fra gang til gang, er der noget galt med designet.
> En variabel skifter vel heller ikke type fra kørsel til kørsel.
> Hvis tit derimod betyder fra version til version, er dette fuldt lovligt.

Hm ja, det kan jeg godt se.
Jeg kan ikke lige komme på et oplagt eksempel.

Men et lidt søgt et er så TV-programmer.

En bruger skal opdatere sin blog med hvilke TV-programmer han skal se en
given aften.
I WSDL står anført hvilke der er mulige. TV-programmer skifter jo ofte, så
derfor skal WSDL tit opdateres.

Her ser jeg et problem der skal løses.


> > Klienten cacher jo WSDL og hvis den ændres hele tiden får den jo ikke
> > ændringerne med.
> Det kan du da blot slå fra - i selv php-filen:
> ini_set("soap.wsdl_cache_enabled", "0");
>
> Som standard caches WSDL-filer et døgn.

Ja, jeg har også slået det fra, men min pointe er at det er standard slået
til, hvorfor mange vil have det slået til.
Ændringer der sker under et døgn vil jo så ikke slå igennem.
Ville være smart hvis man i WSDL kunne angive, at data i den har en kort
TTL.

Tak for hjælpen

YJ





Søg
Reklame
Statistik
Spørgsmål : 177516
Tips : 31968
Nyheder : 719565
Indlæg : 6408629
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste