Minifier — API-Dokumentation
Zurück zum MinifierÜbersicht
Diese Seite dokumentiert die öffentlichen Minifier-APIs unter /api/public/*. Diese Endpunkte akzeptieren JSON-POST-Bodies und geben bei Erfolg oder Fehler einen BaseResponse
{
"serverTime": 0,
"errorMessage": null,
"payload": { /* ... */ }
}
Öffentliche Routen erfordern keine Anti-Forgery-Tokens. Wenn Sie aus der UI innerhalb dieser Anwendung integrieren, existieren geschützte UI-Routen unter /api/*, die nur für die Nutzung im Browser vorgesehen sind.
Öffentliche Endpunkte
- POST /api/public/css-minifier/minify — CSS-Minimierung (JSON)
- POST /api/public/js-minifier/minify — JS-Minimierung (JSON)
- POST /api/public/css-minifier/download-zip — gibt ZIP mit styles.min.css zurück
- POST /api/public/js-minifier/download-zip — gibt ZIP mit scripts.min.js zurück
CSS-Minimierung
POST JSON an /api/public/css-minifier/minify. Das Request-Modell ist im Beispiel gezeigt.
{
"InputCss": "...",
"KeepImportantComments": true,
"ColorNames": 0,
"AbbreviateHexColor": true,
"MinifyExpressions": true,
"CssType": 0,
"RemoveEmptyBlocks": true,
"FixIE8Fonts": true,
"DecodeEscapes": true,
"ExcludeVendorPrefixes": ["ms","webkit"]
}
Bei Erfolg enthält payload outputCss, Größen und optional errors/warnings. Im Fehlerfall gibt der Server einen Nicht-2xx-Status zurück und setzt errorMessage, während payload null ist.
JS-Minimierung
POST JSON an /api/public/js-minifier/minify. Das Request-Modell unterstützt viele erweiterte Optionen, die den NUglify CodeSettings entsprechen. Ein minimales Beispiel ist gezeigt.
{
"InputJs": "console.log('hello');",
"MinifyCode": true,
"EvalTreatment": 0,
"InlineSafeStrings": true,
"MacSafariQuirks": true,
"PreserveImportantComments": true,
"StripDebugStatements": true
}
Hinweis: Enum-Eigenschaften müssen als numerische Werte vom Client gesendet werden. Die UI stellt numerische Auswahllisten für diese bereit.
ZIP herunterladen
Sowohl CSS- als auch JS-ZIP-Endpunkte akzeptieren dieselben Payloads wie die entsprechenden Minify-Endpunkte und geben eine application/zip-Datei mit dem minimierten Artefakt zurück.
Im Fehlerfall geben ZIP-Endpunkte JSON BaseResponse
Erweiterte Einstellungen
Die UI bietet erweiterte Einstellungen für CSS und JS. Diese entsprechen direkt den NUglify-Einstellungen (siehe UI für Standardwerte). Die JS-Einstellungen verwenden standardmäßig die Werte von new CodeSettings().
cURL-Beispiele
Öffentliche Endpunkte erfordern kein Anti-Forgery-Token. Beispiel CSS- und JS-Minify sind gezeigt.
curl -X POST https://packly.yolosoft.net/api/public/css-minifier/minify \
-H "Content-Type: application/json" \
-d '{"InputCss":"body { color: red; }","KeepImportantComments":false,"ColorNames":0}'
Beispiel JS-Minify:
curl -X POST https://packly.yolosoft.net/api/public/js-minifier/minify \
-H "Content-Type: application/json" \
-d '{"InputJs":"console.log(1);","MinifyCode":true}'
UI (geschützte) Endpunkte erfordern den Anti-Forgery-Token-Header RequestVerificationToken.
Sicherheit / Hinweise
- Maximale Eingabegröße:
InputCssundInputJssind auf 1.048.576 Bytes (1 MiB) begrenzt (UTF-8-Byte-Anzahl). - Enum-Werte: Enum-Eigenschaften müssen gültige numerische Werte sein (z. B.
EvalTreatment,Format,LocalRenaming,ScriptVersion,SourceMode). - Vendor-Prefix-Limits:
ExcludeVendorPrefixesunterstützt bis zu 50 Einträge und jeder Eintrag darf nicht leer sein und höchstens 64 Zeichen lang sein. - Große JS-Felder:
RenamePairs,NoAutoRenameList,KnownGlobalNamesListundDebugLookupListsind auf 65.536 Zeichen begrenzt. - RenamePairs-Format: muss kommaseparierte
source=target-Paare sein (z. B.longName=a, other=b). - ZIP-Fehlerverhalten: bei Fehlern geben ZIP-Endpunkte JSON mit gesetztem
errorMessagezurück; Clients sollten die Antwort prüfen, wenn der HTTP-Status Nicht-2xx ist. - Produktionsempfehlung: öffentliche Endpunkte sind nicht authentifiziert — erwägen Sie Rate-Limiting, API-Schlüssel oder Quoten beim öffentlichen Aussetzen.
Nutzungsdetails
Antworten verwenden den BaseResponse
{ "serverTime": 1676496000, "errorMessage": null, "payload": { /* minify result */ } }
Im Fehlerfall enthält der Envelope errorMessage und payload ist null. ZIP-Endpunkte geben bei Erfolg Binärdaten zurück; ist der Status Nicht-2xx, ist der Body ein JSON-Fehler-Envelope.