@echo OFF
set PROTOCOL=http
set BASE_URL=ponton.dev.bearingx.io
set USERNAME=dev
set PASSWORD=test
set FILENAME=bearingx_upload.csv
set WORKDIR=
echo Starting automatic upload...
cd %WORKDIR% || goto :error
echo Logging in as '%USERNAME%' and saving cookie
curl "%PROTOCOL%://%BASE_URL%/login" ^
-H "authority: %BASE_URL%" ^
-H "cache-control: max-age=0" ^
-H "upgrade-insecure-requests: 1" ^
-H "origin: %PROTOCOL%://%BASE_URL%" ^
-H "content-type: application/x-www-form-urlencoded" ^
-H "accept: text/html,application/xhtml+xml,application/xml;q=0.9,im-
age/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
^
-H "sec-fetch-site: same-origin" ^
-H "sec-fetch-mode: navigate" ^
-H "sec-fetch-user: ?1" ^
-H "sec-fetch-dest: document" ^
-H "accept-language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7" ^
--data-raw "username=%USERNAME%&password=%PASSWORD%" ^
-c "bearingx_cookie.txt" ^
--silent ^
|| goto :error
echo Uploading file '%FILENAME%'
for /F %%I in ('curl "%PROTOCOL%://%BASE_URL%/api/orders/upload" ^
-H "authority: %BASE_URL%" ^
-H "accept: application/hal+json" ^
-H "origin: %PROTOCOL%://%BASE_URL%" ^
-H "sec-fetch-site: same-origin" ^
-H "sec-fetch-mode: cors" ^
-H "sec-fetch-dest: empty" ^
-H "accept-language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7" ^
-F "file=@%FILENAME%" ^
-b "bearingx_cookie.txt" ^
--silent ^
--write-out "%%{http_code}\n"') do set responseCode=%%I ^
|| goto :error
rem http response code should start with 20
if not "%responseCode:~0,2%" == "20" (
echo Return code: %responseCode%
goto :error
)
call :success
pause
exit /B 0
:cleanup
echo Cleaning up...
del bearingx_cookie.txt
exit /B 0
:success
echo Upload successfully done!
call :cleanup
exit /B 0
:error
echo Upload failed!
call :cleanup
exit /B 0
Wie funktionieren die Skripte?
Die folgende Beschreibung basiert auf dem mitgelieferten Skript 'automaticUploadBearingx.bat'. Das Skript ist nur ein Beispiel dafür, wie ein Upload möglich ist.
Das Skript ruft die Restfassade über einfache curl-Befehle auf. Der erste curl-Befehl erstellt ein Login
und speichert das erstellte Cookie in einer Datei zur weiteren Verwendung. Diese Datei sollte sich direkt
neben dem Skript befinden und heißt _'bearingx-cookie.txt'_. Es sollte daran gedacht werden, dieses
Cookie zu löschen, sobald das Skript fertig ist. Der nächste curl-Befehl verwendet das im ersten Schritt
erstellte Cookie, um den Upload-Aufruf zu authentifizieren. Der zweite curl-Befehl ruft _'/api/or-
ders/upload'_ der Rest-Facade auf und hängt die hochzuladende Datei an den Aufruf an.
Achten Sie vor dem Ausführen darauf, dass die Zeilenenden des Bash-Skripts korrekt sind. Es kann
vorkommen, dass durch Kopieren und Einfügen (z. B. aus einer E-Mail) die Zeilenenden verändert werden.
Das Windows-Batch-Skript kann mit Windows- und UNIX-Zeilenenden umgehen.