SignalK / specification

Signal K is a JSON-based format for storing and sharing marine data from different sources (e.g. nmea 0183, 2000, seatalk, etc)
Other
91 stars 68 forks source link

History playback and snapshot retrieval APIs #510

Closed tkurki closed 5 years ago

tkurki commented 5 years ago

Add query parameters to stream historical data and retrieve historical snapshot values.

tkurki commented 5 years ago

Ping @panaaj

tkurki commented 5 years ago

No longer WIP.

fabdrol commented 5 years ago

@tkurki as in this should be reviewed and merged or as in it's gone stale?

tkurki commented 5 years ago

It was WIP, no longer is and should be reviewed.

rob42 commented 5 years ago

See swagger definition at https://github.com/SignalK/signalk-java/blob/artemis/signalk-static/docs/openapi.json When https://github.com/SignalK/signalk-java/tree/artemis is installed the swaggerUI is available at http://localhost:8080/docs/

sarfata commented 5 years ago

I think an important use-case is grabbing a big chunk of data over time in one swoop, for example to draw a trace on a map or to graph speed over time.

With the current proposal, this would be very hard to do: you would have to either make a lot of HTTP calls to the snapshot retrieval API - or to the websocket API with playbackRate=100000.

Suggestion of changes to the websocket endpoint:

I think we should also support a way to let clients know what data is available but that could come separately.

tkurki commented 5 years ago

You are talking about history and/or track api. This is only for playback/snapshot retrieval.

https://github.com/SignalK/specification/issues/363 https://github.com/SignalK/specification/issues/89

tkurki commented 5 years ago

So, separate endpoints then?

tkurki commented 5 years ago

Github swallowed the conversations, but a5c4d504aa86b867be730977dae35a97dc2e59f7 and dae3fb2c3ba21af85f12515057765001d7d9ab3e use now separate endpoints.

Timestamp in the query string makes more sense to me in the api/snapshot full model case than inserting it in the path string, restful or not.