Mit Mock Firebolt kann ein App-Entwickler, der eine Firebolt-kompatible App erstellt, „künstlich“ dazu führen, dass Aufrufe an die Firebolt-SDKs andere Antworten zurückgeben als ein echter Firebolt, der auf jedem Gerät läuft.
Dies könnte zum Beispiel verwendet werden:
ZUKUNFT: Kann als Reverse-Proxy für einen echten Firebolt fungieren, der auf einem echten Gerät ausgeführt wird.
(HINWEIS: Das Standard-SDK verfügt über integrierte statische Mocks, ist jedoch nicht kontrollierbar oder erweiterbar.)
Beachten Sie außerdem, dass App-Entwickler auch Mock Firebolt verwenden können, um zu überprüfen, ob ihre Aufrufe von Firebolt-Methoden korrekt sind, da das SDK keine Parameter bei Methodenaufrufen validiert.
Dieses Repo enthält diese Elemente:
Siehe Dokumentation.
Mock Firebolt ist ein sehr allgemeiner Spottdienst für fast jeden OpenRPC-basierten Dienst. Die Liste der bestimmten SDKs, die der Server bei seiner Ausführung unterstützt, wird durch den Inhalt der Datei server/src/.mf.config.json
und alle zugehörigen Befehlszeilenflags gesteuert, die Sie beim Starten des Servers angeben.
Das Repo enthält eine server/src/.mf.config.SAMPLE.json
-Datei und Sie müssen diese Datei nach server/src/.mf.config.json
kopieren, damit der Server gestartet werden kann. Sobald Sie dies getan haben, können Sie Ihre server/src/.mf.config.json
-Datei bearbeiten und bei Bedarf weitere SDKs hinzufügen. Wenn sich die OpenRPC-JSON-Datei für Ihre API irgendwo in der Cloud befindet oder anderweitig über HTTP verfügbar ist, sollten Sie die url
Eigenschaft für das SDK in dieser Datei anstelle der fileName
-Eigenschaft verwenden (die nur für SDKs verwendet wird, für die es ein „hard Abhängigkeit“ in der Datei server/package.json
).
In den nächsten beiden Abschnitten wird davon ausgegangen, dass Sie die sofort einsatzbereite Datei .mf.config.json
verwenden.
Mock Firebolt unterstützt diese Firebolt SDKs: core & manage .
Mock Firebolt unterstützt auch das $badger SDK für Anwendungsentwickler, die von $badger auf Firebolt migrieren.
Entwickler, die diese Funktionalität aktivieren möchten, müssen beim Starten von Mock Firebolt das Befehlszeilenflag --moneybadger
übergeben. Außerdem müssen Sie das Skript activateMockFireboltForBadger.js
in Ihrer App verwenden und es ausführen lassen, bevor Ihr App-Bundle (das $badger enthält) ausgeführt wird.
Hinweis: Erfordert NodeJS 16+. Wenn Sie nvm
verwenden, nvm use 16
oder ähnliches.
Zum Installieren und Ausführen:
cd <the place you put your code repos>
git clone https://github.com/rdkcentral/mock-firebolt.git /* THIS REPO */
cd mock-firebolt
# To start the mock Firebolt server (if running locally)
cd server
# One-time stuff
cp src/.mf.config.SAMPLE.json src/.mf.config.json
# To install dependencies, clean/create build/ subdirectory, build and upgrade SDK, build source code within this project
npm install
# If you want support for Firebolt Core/Manage SDK
# Run in a separate terminal window/tab, or use '&' to background
npm start
# If you need to use non-standard ports for any reason:
npm start -- --httpPort 3456 --socketPort 9876 --wsSessionServerPort 1234
#If you wish to enable conduit functionality*
npm start -- --conduit
*Note*: Requires Conduit to be running. See the Conduit documentation (./conduit/README.md) for more information.
# If you need to use proxy connection for any reason:
npm start -- --proxy <ip>:<port>
Refer more about proxy mode in ./docs/ProxyMode.md
# To use the control CLI (assuming you're in the top-level directory for this repo)
cd cli
npm install
cd src
node cli.mjs --help
# FUTURE: To use the Chrome browser plugin
Visit chrome://extensions in Chrome
Ensure "Developer mode" is turned on (slider to the right in the top right corner of your browser window)
Click the "Load Unpacked" button (top left corner of browser window)
Navigate to the directory under browser-extensions which contains a manifest.json file and click "Select"
Jetzt können Sie über HTTP auf OpenRPC zugreifen und es verwalten, indem Sie "url": "https://rdkcentral.github.io/firebolt/requirements/latest/specifications/firebolt-open-rpc.json"
in mf.config.SAMPLE.json
und Kopieren nach mf.config.json
.
HINWEIS: Bei diesen Anweisungen geht es derzeit darum, ein Docker-Image lokal zu erstellen, anstatt eines aus einem Image-Repository herunterzuladen.
export MF_DOCKER_USER=<yourDockerUsername>
cd <top of repo>
# Create a docker image: Use the appropriate command (most 3rd party app devs should use the first command)
docker build -f Dockerfile.coreSdk . -t $MF_DOCKER_USER/mock-firebolt
docker build -f Dockerfile.allSdks . -t $MF_DOCKER_USER/mock-firebolt
# Confirm your image was created
docker images | grep mock-firebolt
# Run the image, enabling the core/manage OpenRPC (typical)
# Change '$(pwd)' to whatever else you might want to use; this is where your MF .json files live
# NOTE: -p <outside/host port>:<inside/container port>
docker run -d
--name mf
--mount type=bind,source="$(pwd)",target=/usr/src/firebolt/host-files
-p 3333:3333
-p 9998:9998
$MF_DOCKER_USER/mock-firebolt
# Get container ID
docker ps | grep mf
# See logs
docker logs mf
# Enter the container (if necessary/desired)
docker exec -it mf /bin/bash
# Run CLI commands from inside the container (if necessary/desired)
container> cd /usr/src/firebolt/mock-firebolt/cli/src
container> node cli.mjs --help
# Run CLI
# Note the container path for the volume used when running the image is used here to refer to MF .json files
docker exec -it mf mf.sh --help
docker exec -it mf mf.sh --upload /usr/src/firebolt/host-files/<file relative current directory>
# E.g., docker exec -it mf mf.sh --upload /usr/src/firebolt/host-files/cli/examples/account-1.json
# Cleanup when done
docker stop mf
docker rm mf
docker image rm $MF_DOCKER_USER/mock-firebolt (If you want to remove the image, too)
Siehe Bekannte Probleme.
Wenn Sie Code zu diesem Projekt beitragen möchten, können Sie dies über GitHub tun, indem Sie das Repository forken und eine Pull-Anfrage senden.
Bevor RDK Ihren Code in das Projekt akzeptiert, müssen Sie die RDK Contributor License Agreement (CLA) unterzeichnen.