Changes between Version 24 and Version 25 of skripte-als-webservice


Ignore:
Timestamp:
Aug 11, 2011, 2:20:26 PM (13 years ago)
Author:
Wolfgang Schmidle
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • skripte-als-webservice

    v24 v25  
    2020=== Parameter-Typen
    2121
    22 Die Skript-Parameter sollen direkt auf den Webservice abbildbar sein. Parameter-Typen:
     22Die Skript-Parameter sollen direkt auf den Webservice abbildbar sein. Offensichtliche Parameter-Typen:
    2323 * ja/nein, entspricht einer Checkbox: Beispiel --verbose (dieser Parameter-Typ ist bei den XML-Workflow-Skripten selten)
    2424 * Wert aus einer festen Liste, die sich selten ändert: Beispiel --DESpecs=1.1.2
    2525 * Wert aus einer Liste von Dateinamen: Beispiel --wordlist=datei1,datei2 (die Reihenfolge der Dateien ist wichtig)
    2626
    27  * Zusammenfassungen von Parametern in einem einzelnen Parameter: Beispiel --language=LA oder --timeperiod=RENAISSANCE oder --defaults=file, bewirkt u.a. die Vorauswahl bestimmter Wortlisten
     27Etwas 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
    2829 * einzelne Regelergänzungen wie --addWordlistEntry="opꝫ = opportet", --removeWordlistEntry="opꝫ" ? (eventuell ersetzbar durch eine kurze zusätzliche Datei)
    2930 * Ä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].
     
    4950Dabei bedeutet
    5051 * s: erwartet wird ein String
    51  * $: einmal, @: mehrmal
     52 * $: einmal, @: mehrmal (Alternative: Notation wie bei regexes)
    5253 * reg-wordlist: akzeptiert alle Hilfsdateien , die mit "reg-wordlist" anfangen
    5354
    5455Der letzte Punkt bezieht sich auf die Hilfsdateien im Server. Der Benutzer kann natürlich weitere Dateien mit beliebigen URLs hinzufügen.
     56
     57Der 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
     59Wie werden Meta-Parameter kommuniziert?
    5560
    5661== 2. Zusätzlich im Webservice
     
    108113Beim 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.
    109114
    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?
     115Der Parameter --dir kann am Ende ein / haben, es darf aber auch fehlen.
    111116
    112117Input 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.
    113118
    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.
     119Error 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.
    115120
    116121=== Wo nach Optionen gesucht wird
     
    124129
    1251303. 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 
    127131
    128132Ich verwende jetzt, im Gegensatz zu vorher, einen relativen Pfad, weil es sonst nicht ohne Änderungen funktioniert, nachdem man das Verzeichnis