Avatar billede misbruger Nybegynder
30. september 2004 - 21:34 Der er 14 kommentarer og
1 løsning

Webservices retur værdier

Jeg vil gerne hører jeres mening om hvorledes I vil anbefale ens retur værdier skal struktureres for forholdvis simple webservices...

F.eks....

Jeg laver en webservice til tilmeldning af nyhedsbrev....

[WebMethod]
public bool SignUpNewsletterReceipientList(string recipientEmail, string recipientName)
{
    // persister informationerne   
    return true; // returnere en bool værdi for indikation af persisteringen
}

I ovenstående tilfælde returnere jeg meget simpelt en bool værdi for om data er blevet persisteret.
Men der kan jo umiddelbart være flere forløb for ovenstående behandling af data...

1. Email adressen findes allerede i systemet
2. Email adressen er af forkert format
3. Alt ok

Vil I anbefale at man laver en retur klasse såsom...

public class NewsletterSignUpReturnValue
{
    private bool _IsSuccesfull;

    public bool IsSuccesfull
    {
        get { return this._IsSuccesfull; }
        set { this._IsSuccesfull = value; }
    }

    private string _ReasonOfFailure;

    public string ReasonOfFailure
    {
        get { return this._ReasonOfFailure; }
        set { this._ReasonOfFailure = value; }
    }
}

... og returnere den i steden for...?

Hvordan vil I håndtere dette ?
Avatar billede erikjacobsen Ekspert
30. september 2004 - 21:38 #1
Du kan returnere en streng som siger "OK", "Findes allerede", osv.
Eller en enum
Avatar billede arne_v Ekspert
30. september 2004 - 21:39 #2
Der er faktisk noget tiltalende over den sidste efter min mening.

Den vil jeg godt stemme på.
Avatar billede arne_v Ekspert
30. september 2004 - 21:40 #3
erik>

Jeg kan ikke lidt string comparison til at detreminer status.

Er enum standardiseret i WS-I ?
Avatar billede erikjacobsen Ekspert
30. september 2004 - 21:44 #4
Det tror jeg ikke, jeg mener enum bliver lavet om til et tal.
(jeg tror faktisk ikke jeg har fået prøvet lige netop det...)
Avatar billede misbruger Nybegynder
30. september 2004 - 21:55 #5
Jeg kan også godt li' enum, men det bliver blot lavet om til et tal, så den er lidt tam til det her formål :|
Avatar billede misbruger Nybegynder
30. september 2004 - 21:56 #6
Og nej!
Jeg mener ikke man kan returnere en string, hvordan skal mine klienter kunne arbejde med det :(
Avatar billede arne_v Ekspert
30. september 2004 - 21:58 #7
Man kan godt returnere en string, men er det nu "OK", "ok" eller "Ok" som betyder OK ?
Avatar billede erikjacobsen Ekspert
30. september 2004 - 22:01 #8
Men så er der jo ikke så meget mere man kan. En streng giver dig en "læselig"
besked, et tal kræver at de leverer konstantdefinitioner, evt i form af en enum, med.
Avatar billede arne_v Ekspert
30. september 2004 - 22:03 #9
Man kan jo returne et objekt med en boolean og en streng, hvor man kan teste sikkert
på boolean og få mere information fra strengen hvis false. Som foreslået af spørger.
Avatar billede misbruger Nybegynder
30. september 2004 - 22:53 #10
Hmmm... jeg har lige lavet en lille test med en Webservice der har en public enum som return værdi.

Efterfølgende brugte jeg wsdl.exe til at lave en proxy klasse til et adskilt asp.net projekt.
Umiddelbart ser det ud til at min enum forbliver som enum.

Dog ved jeg ikke om det samme vil være gældende for type clienter.
Avatar billede arne_v Ekspert
30. september 2004 - 23:25 #11
Det bliver jo nok lidt svært i Java ...
Avatar billede misbruger Nybegynder
12. oktober 2004 - 15:17 #12
erik & arne.....
Smid venligst svar så jeg kan lukke
Avatar billede arne_v Ekspert
12. oktober 2004 - 15:21 #13
svar
Avatar billede erikjacobsen Ekspert
12. oktober 2004 - 15:22 #14
Tak, men jeg samler slet ikke på point.
Avatar billede misbruger Nybegynder
12. oktober 2004 - 15:26 #15
Ok men så tak for snakken!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester