The position service retrieves trades and aggregate positions from the database and returns them to pre-populate a blotter (trades/positions) for a specific accountID specified. Incremental updates are received in the GUI via the pub-sub trade-feed service.
You will need a running instance of the database. This currently is configured to be a H2 Database running on tcp at $DATABASE_TCP_HOST
:$DATABASE_TCP_PORT
on the database $DATABASE_NAME
Login details are $DATABASE_DBUSER
and $DATABASE_DBPASS
Default $POSITION_SERVICE_PORT
is 18090
In this project, you can run the database by running a shell in the database project and running
./gradlew build
./run.sh
A simple application that exposes lists of trades and positions by accountID to bootstrap the blotter.
The API documentation is available via swagger:
http://localhost:18090/api-docs
And via UI:
http://localhost:18090/swagger-ui.html
It runs on port 18090 which can be changed via the
server.port=18090
system property or $POSITION_SERVICE_PORT
environment variable.
How to run the application Check out the source code from git
gradlew bootRun
Configuration can be found in application.properties
and can be overridden with env vars or command line parameters
You can run a mock of this service by installing @stoplight/prism
This statically uses the example content in the OpenAPI spec to mock the service (you can specify --dynamic
to let it be more creative)
# Only need to do this once for your machine
sudo npm install -g @stoplight/prism-cli
Run prism to mock your OpenAPI spec as follows (Specify port
as you see fit)
prism --cors --port 18090 mock openapi.yaml
You can then try out your requests against the mock service as follows: (or from a browser)
curl -X GET "http://localhost:18090/trades/22214" -H "accept: application/json"
curl -X GET "http://localhost:18090/positions/22214" -H "accept: application/json"