molily: Wie implementiere ich eine eigene Web-API?

Beitrag lesen

Hallo,

Dafür bräuchte ich ja sowas wie eine Web-API oder einen Web-Service (Stichtworte SOAP, RPC, Corba...).

»REST« sollte erst einmal das Stichwort sein, wenn du es einfach haben willst. Das heißt Arbeiten mit den Standardaktionen von HTTP, vor allem GET und POST sowie einem »Interface« in Form von URIs, die bestimmte Ressourcen beschreiben.

Nehmen wir mal eine Vereinfachung meines Problems: ein Formular, das es erlaubt, eine Grafik hochzuladen und auf eine Wunschgröße zu verkleinern. Dafür brauche ich 2 Formularelemente, richtig?

Sinnigerweise stellt deine API eine Methode »Grafik einliefern« zur Verfügung. Diese gibt dann die verkleinerte Grafik zurück oder eine Fehlermeldung.

Ausserdem habe ich 3 Schritte bis zum fertigen Bild:

  1. ein leeres Formular
  2. ggf. nochmal das Formular mit Fehlercheck
  3. das fertige Bild

Ein Server ist m.M.n. nicht für die Validierung der Eingabedaten zuständig. Die eingelieferten Daten haben korrekt zu sein. Natürlich kannst du die Fehlermeldung im oben genannten Modell ausbauen oder eine eigene Methode zur Validierung bereitstellen. Das halte ich allerdings nicht für nötig.

Da ich das ja aber per Webservice mache, muss sich meine lokale Software (Client) das Ergebnis aller 3 Schritte vom Server holen.

Du hast ein fest definiertes Interface deines Web Services. Das definiert das Formular (Felder und Datentypen, mögliche Werte, Vorgaben usw.) sowie die Übertragungsmethoden. Dieses kennt der Client von Natur aus und kann also das »leere Formular« ohne Zugriff auf den Server darstellen.

Eine Verbindung mit dem Server sollte m.E. erst aufgenommen werden, wenn die Formulardaten übertragen werden. Da der API auch die Anforderungen an die Eingabedaten definiert, kann der Client vor jeder Kontaktaufnahme eine grundlegende Validierung vornehmen. Nur die letztliche Gültigkeitsprüfung, die naturgemäß nur dem Server möglich ist, sollte auch dort vorgenommen werden.

Mathias