DTOs des Referenz-Plugins (Python)
- Die DTOs sind Pydantic-Modelle in
app/main.pymit denselben Feldnamen wie die Java-DTOs; das JSON auf der Leitung ist daher gleich. Die Bedeutung jedes Feldes steht in der DTO-Doku des Java-Plugins. - Alle Modelle verwenden
extra="ignore": unbekannte Felder im Request werden ignoriert. - Enums werden als String übertragen (z.B.
"RELATIV","OK") – das entspricht der JSON-Darstellung der Java-Enums. Die erlaubten Werte stehen in den Enums des Java-Plugins. - Java-
longwird zuint, Java-doublezufloat, Listen zuList[...], HashMaps zuDict[str, ...].
Übersicht
| Python-Modell | Java-Doku | Abweichung |
|---|---|---|
AdminInfoDto |
AdminInfoDto | andere Felder, siehe unten |
CalcErgebnisDto |
CalcErgebnisDto | Feld heißt in Python json_value, im JSON aber json (Alias) |
CalcParamsDto |
CalcParamsDto | Standardwerte, siehe unten |
ImageBase64Dto |
ImageBase64Dto | – |
ImageInfoDto |
ImageInfoDto | lifetime Standard 0 (/open/imageurl setzt ein Jahr) |
ImageUrlDto |
ImageUrlDto | – |
JavascriptLibrary |
JavascriptLibrary | – |
LoadPluginRequestDto |
LoadPluginRequestDto | – |
PluginAngabeRequestDto |
PluginAngabeRequestDto | – |
PluginAnswerDto |
PluginAnswerDto | – |
PluginConfigDto |
PluginConfigDto | params mit beliebigen Werten (Dict[str, Any]) |
PluginConfigurationInfoDto |
PluginConfigurationInfoDto | Standardwerte, siehe unten; die Konstanten CONFIGMODE_* stehen in PluginDemo |
PluginConfigurationInfoRequestDto |
PluginConfigurationInfoRequestDto | timeout Standard 300 |
PluginConfigurationRequestDto |
PluginConfigurationRequestDto | – |
PluginDatasetDto |
PluginDatasetDto | – |
PluginDatasetListDto |
PluginDatasetListDto | – |
PluginDto |
PluginDto | – |
PluginEinheitRequestDto |
PluginEinheitRequestDto | – |
PluginGeneralInfo |
PluginGeneralInfo | Standardwerte, siehe unten |
PluginGeneralInfoList |
PluginGeneralInfoList | – |
PluginMaximaCalcModeDto |
PluginMaximaCalcModeDto | preCalc Standard false (Java true) |
PluginParserRequestDto |
PluginParserRequestDto | – |
PluginQuestionDto |
PluginQuestionDto | – |
PluginRenderDto |
PluginRenderDto | – |
PluginRenderLatexRequestDto |
PluginRenderLatexRequestDto | mode Standard "default" |
PluginRenderResultRequestDto |
PluginRenderResultRequestDto | grade Standard 1.0 |
PluginRequestDto |
PluginRequestDto | – |
PluginScoreInfoDto |
PluginScoreInfoDto | status als String, Standard "FALSCH" |
PluginScoreRequestDto |
PluginScoreRequestDto | grade Standard 1.0 |
PluginSetConfigurationDataRequestDto |
PluginSetConfigurationDataRequestDto | – |
PluginSubQuestionDto |
PluginSubQuestionDto | – |
PluginUpdateJavascriptRequestDto |
PluginUpdateJavascriptRequestDto | – |
ServiceInfoDTO |
ServiceInfoDTO | Felder gleich, Inhalt reduziert (siehe REST-Schnittstelle) |
ToleranzDto |
ToleranzDto | – |
VarDto |
VarDto | – |
VarHashDto |
VarHashDto | – |
Ohne eigenes Pydantic-Modell
| Java-Klasse | in Python |
|---|---|
| ConfigServiceDto | Dictionary in _build_registration_payload, zusätzlich mit htmlServiceStartTime und htmlLastRegistrationTime – siehe Build und Deployment |
| RegisterServiceResultDto | Antwort des Setups wird nicht ausgewertet |
| PluginConfigurationConnection | Dataclass PluginConfigurationState (zusätzlich touch() und is_expired()) |
| PluginImageResultDto | nicht vorhanden; Fehler beim Bild stehen direkt in ImageBase64Dto.error |
AdminInfoDto
Die Python-Version hat ein eigenes, kleineres AdminInfoDto. Gemeinsam sind nur pid, version, encoding, javaVersion und ip.
| Feld | Typ | Standard |
|---|---|---|
applicationname |
str | plugindemopython |
pid |
int | 0 |
applicationhome |
str | "" |
startupDate |
int | 0 |
uptime |
int | 0 |
version |
str | python |
servername |
str | "" |
system |
str | "" |
encoding |
str | "" |
javaVersion |
str | "" |
ip |
str | "" |
dockerName |
str | "" |
uriIntern |
str | "" |
uriInternEnabled |
bool | true |
uriExtern |
str | "" |
uriExternEnabled |
bool | true |
Der /info-Endpunkt setzt davon nur applicationname.
Abweichende Standardwerte
Standardwerte wirken nur, wenn ein Feld im Request fehlt bzw. das Plugin es nicht setzt.
| DTO | Feld | Python | Java |
|---|---|---|---|
CalcParamsDto |
rekursiv, ausmultiplizieren, herausheben, forceOpt |
true |
false |
CalcParamsDto |
showpotenz, calcmode |
"AUTO", "MAXIMA" |
null |
PluginGeneralInfo |
defaultPluginConfig |
false |
true |
PluginGeneralInfo |
javaScript, inputElement |
true, "JAVASCRIPT" |
false, "TextField" |
PluginGeneralInfo |
pluginType |
"python.PluginDemo" |
"" |
PluginConfigurationInfoDto |
useVars, useCVars, useMaximaVars, useMVars |
true |
false |
PluginConfigDto |
tagName |
"plugintag" |
"" |
PluginMaximaCalcModeDto |
preCalc |
false |
true |
ImageInfoDto |
lifetime |
0 (kein Ablauf) | ein Jahr ab Erzeugung |