Changes between Version 24 and Version 25 of skripte-als-webservice
- Timestamp:
- Aug 11, 2011, 2:20:26 PM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
skripte-als-webservice
v24 v25 20 20 === Parameter-Typen 21 21 22 Die Skript-Parameter sollen direkt auf den Webservice abbildbar sein. Parameter-Typen:22 Die Skript-Parameter sollen direkt auf den Webservice abbildbar sein. Offensichtliche Parameter-Typen: 23 23 * ja/nein, entspricht einer Checkbox: Beispiel --verbose (dieser Parameter-Typ ist bei den XML-Workflow-Skripten selten) 24 24 * Wert aus einer festen Liste, die sich selten ändert: Beispiel --DESpecs=1.1.2 25 25 * Wert aus einer Liste von Dateinamen: Beispiel --wordlist=datei1,datei2 (die Reihenfolge der Dateien ist wichtig) 26 26 27 * Zusammenfassungen von Parametern in einem einzelnen Parameter: Beispiel --language=LA oder --timeperiod=RENAISSANCE oder --defaults=file, bewirkt u.a. die Vorauswahl bestimmter Wortlisten 27 Etwas esoterischere Parameter-Typen, die in den Skripten zwar geplant, aber noch nicht implementiert sind: 28 * Meta-Parameter, d.h. Zusammenfassungen von Parametern in einem einzelnen Parameter: Beispiel --language=LA oder --timeperiod=RENAISSANCE oder --defaults=file, bewirkt u.a. die Vorauswahl bestimmter Wortlisten 28 29 * einzelne Regelergänzungen wie --addWordlistEntry="opꝫ = opportet", --removeWordlistEntry="opꝫ" ? (eventuell ersetzbar durch eine kurze zusätzliche Datei) 29 30 * Änderungen von Zeichenlisten, zum Beispiel --addWordseparator="/", --removeWordseparator="/" ? Ein vergleichbarer Parameter könnte auch im Anzeigesystem verwendbar sein, siehe [https://it-dev.mpiwg-berlin.mpg.de/tracs/mpdl-project-software/ticket/176 #176]. … … 49 50 Dabei bedeutet 50 51 * s: erwartet wird ein String 51 * $: einmal, @: mehrmal 52 * $: einmal, @: mehrmal (Alternative: Notation wie bei regexes) 52 53 * reg-wordlist: akzeptiert alle Hilfsdateien , die mit "reg-wordlist" anfangen 53 54 54 55 Der letzte Punkt bezieht sich auf die Hilfsdateien im Server. Der Benutzer kann natürlich weitere Dateien mit beliebigen URLs hinzufügen. 56 57 Der Parameter `--dir` ist nur eine Bequemlichkeit für die Verwendung des Skriptes auf der Commandline. Der Webservice wird ihn nicht verwenden. Gleich in der Liste weglassen? 58 59 Wie werden Meta-Parameter kommuniziert? 55 60 56 61 == 2. Zusätzlich im Webservice … … 108 113 Beim Webservice wird es eine Liste von Standard-Hilfsdateien geben. Zusätzlich muss der Benutzer die Möglichkeit haben, weitere Hilfsdateien in das System hochzuladen oder mit beliebigen URLs auch Dateien einzubinden, die nicht im System sind. 109 114 110 Parameter --dir besser mit / am Ende? Bisher: wenn es $dir gibt, hänge $dir/ vorne an den Dateinamen dran. Mit / könnte ich $dir einfach auf Verdacht ohne Änderungen dranhängen. Oder: Wenn $dir ungleich "" ist, aber nicht mit / endet, hänge / dran? Was ist üblich? 115 Der Parameter --dir kann am Ende ein / haben, es darf aber auch fehlen. 111 116 112 117 Input und output sind immer UTF-8. Der input wird im Skript wie bisher mit "while(<>)" ausgelesen. Das funktioniert mit STDIN und Dateinamen. Ich verwende jetzt doch nicht "input=", weil alles, was nicht eine Option ist, als Dateiname interpretiert wird. (Mehr als ein Dateiname ist eigentlich bei keinem Skript sinnvoll, aber es ist nicht verboten). Ich verwende auch kein "output=", weil die defaults STDOUT für Text und STDERR für Fehlermeldungen eigentlich gut genug sind. Umleitungen kann man dann auf der Commandline mit Unix-Mitteln machen. 113 118 114 Error conditions: Wenn ein Skript nach STDERR schreibt, wird die Verarbeitung des Skripts oder der pipe abgebrochen. Falls nötig, kann ich in die Fehlermeldungen auch noch Fehler-Codes hineinschreiben.119 Error conditions: Wenn ein Skript nach STDERR schreibt, soll die Verarbeitung des Skripts oder der pipe abgebrochen werden. Das Skript bricht mit "die" ab, das automatisch einen exit code ungleich 0 bewirkt. 115 120 116 121 === Wo nach Optionen gesucht wird … … 124 129 125 130 3. falls das Skript als Textfilter läuft, eine zusätzliche Datei in Filter_parameters/$name.txt. Schritt 3 ist nötig, weil man einem Textfilter keine Parameter übergeben kann. Beispiel: `Text Filters/Filter_5_01_insert_reg.pl` sucht in `Text Filters/Filter_parameters/Filter_5_01_insert_reg.txt`. 126 127 131 128 132 Ich verwende jetzt, im Gegensatz zu vorher, einen relativen Pfad, weil es sonst nicht ohne Änderungen funktioniert, nachdem man das Verzeichnis