Allgemeine Schnittstelle mit Beschreibung

aemik

Bekanntes Mitglied
Habe folgendes Problem:

biete über deinen Webservice die Möglichkeit an verschiedene Bericht anzufordern. Der Rückgabetype ist dabei immer derselbe (byte[]).
Die Anzahl von verschiedenen Berichten die ich anbiete wird immer größer und ich weiss nicht ob es sinnvoll ist für jeden Bericht eine eigene WebserviceMethode anzubieten.
Einerseits ist der Rückgabetyp immer derselbe, aber die Anzahl und Typen von Parametern ist für jeden Bericht unterschiedlich.

Habe mit folgendes überlegt:
eine allgemeine Methode "getBericht(...)" anziubieten und ihr einen Sack voller Properties zu übergeben, die den Berichttyp und die zugehörigen Parameter enthalten. Eine andere Methode "getBerichtSchnittstellenBeschreibung()" gibt dem Client eine Übersicht über alle verfügbaren Berichtstypen und welche Parameter dafür notwendig sind.

Der Server ist in dem Fall Java, der Client .NET.

1.) Was haltet ihr von dieser Idee? Evtl. einen anderen Vorschlag?
2.) Wie könnte so eine Schnittstellenbeschreibung aussehen? Welches Format? String[][]? Was ist da möglich im WebService? KeyValue Konstrukt?
3.) in welcher Form übergeb ich meiner "getBericht(...)" Methode die Parameter (Berichtstyp, Ids, Datum von, Datum bis, verscheidene booleans)

Danke für eure Hilfe!
Gruß
 

MQue

Top Contributor
Ich würde mir da eine Array[] als Parameter machen und in dem Array[] kannst du dann ja speichern was du willst. Zu viele Parameter bei einem Methode sollte man je nicht machen (max. 2-3).
 

aemik

Bekanntes Mitglied
Danke.

1.) Ein Array mit allen Parametern ist eine Idee, aber nur möglich wenn jeder Parameter ein String ist. Ich habe aber auch Stringarrays.
2.) Wie soll dann die Schnittstellenbeschreibung aussehen?

Gruß
 

MQue

Top Contributor
Dann würd ich sowas machen:

Java:
public MyStringObject getMyStuff() {
}

Java:
public class MyStringObject {
     private String[] myStringArray;
     private MyStringObject myStringObject;

getter und setter
}

Da musst du das ganze rekursiv machen.
lg
 

aemik

Bekanntes Mitglied
Ok,
ich nehme ein Objekt in das ich meine Parameter packe. Dadurch ist es möglich auch verschiedene Datentypen zu verwenden.

Aber wie realisiere ich die Schnittstellenbeschreibung?
Ich müsste dem Client mitteilen für welchen Berichtstyp welche Parameter in dem Objekt gesetzt werden müssten.
Wie mach ich das am einfachsten?

Danke
 

MQue

Top Contributor
Versteh ich jetzt nicht, schreib mal deine Klasse, wie du sie am Server haben willst und mach dann einen WebService daraus, dann siehst du eh, wie die WSDL ausschaut und kannst dann deinen Client darauf hintrimmen (Man sollte zwar Contract (WSDL) first machen aber in ausnahmen gehts auch so)
Zeig mal ein Code, dann ist es vielleicht leichter dir zu helfen.

PS: Für Danke einfach auf de Button klicken reicht :)
lg
 

Keo

Mitglied
Ich hatte vor kurzem eine ähnliche Anforderung gehabt. Meine Berichte habe ich jedoch nicht als Byte in den Soap-Body gehängt, sondern als Referenz/SOAP-Attachment. Suchwort SWA
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Webservice, allgemeine Fragen SOA 9

Ähnliche Java Themen

Neue Themen


Oben