v0.0.1
movebank-mirror-api 0.0.1.
A read-only HTTP server that replays the Movebank REST API on
top of a local on-disk mirror produced by
movebank-mirror.
Verified compatibility
Verified against the canonical R clients in the movement-ecology
ecosystem on this release:
| Client | Result |
|---|---|
move v1 |
4 / 4 checks pass (compatibility/move-r/verify.R) |
move2 (0.5+) |
4 / 4 checks pass (compatibility/move2-r/verify.R) |
movebank-api-client |
Covered by the in-process DirectReadIntegrationTest, runs on every build |
The R-client regression is documented and reproducible against
the pinned R environment in
mcb77/movebank-rocker.
Install
Requires JDK 21.
tar -xf movebank-mirror-api-boot-0.0.1.tar
./movebank-mirror-api-boot-0.0.1/bin/movebank-mirror-api -d /var/lib/movebank-mirror(.zip available too if you prefer.)
Then point any Movebank-API client at http://localhost:8080/movebank.
Pairs with the rest of the family
movebank-mirror— populates the mirror directory this server reads frommovebank-api-client— Java client that works against this server unchangedmovebank-rocker— pinned R environment formove/move2against your local mirror
What's load-bearing about the "weird-looking" code
This server replicates Movebank's own undocumented behavioural
quirks so existing R clients work unchanged. See
BUG_COMPATIBILITY.md for the verbatim
curl-against-live-API findings and the corresponding server fixes.
Read this before refactoring EventService / MirrorService /
DirectReadController.
Known gaps
TODO.md tracks them transparently. Headlines:
sortandlimitquery parameters are ignored- No authentication (default bind is
127.0.0.1deliberately;
put a reverse proxy in front before exposing externally) - In-memory cache: every request re-reads study JSON from disk
Most existing clients work fine with these gaps; they hit the
80% the API is used for.
License
LGPL-2.1.