Your task is to create a RESTful API that serves vessel tracks from a raw vessel positions data-source. The raw data is supplied as a JSON file that you must import to a database schema of your choice.
Fields supplied are:
- mmsi: unique vessel identifier
- status: AIS vessel status
- station: receiving station ID
- speed: speed in knots x 10 (i.e. 10,1 knots is 101)
- lon: longitude
- lat: latitude
- course: vessel's course over ground
- heading: vessel's true heading
- rot: vessel's rate of turn
- timestamp: position timestamp
The API end-point must:
- Support the following filters:
- mmsi (single or multiple)
- latitude and longitude range (eg: minLat=1&maxLat=2&minLon=3&maxLon=4)
- as well as time interval.
- Log incoming requests to a datastore of your choice (plain text, database, third party service etc.)
- Limit requests per user to 10/hour. (Use the request remote IP as a user identifier)
- Support the following content types:
- At least two of the following: application/json, application/vnd.api+json, application/ld+json, application/hal+json
- application/xml
- text/csv
Share your work:
- Stage your solution on a demo page or
- Fork this repo and create a pull request that contains your implementation in a new branch named after you.
Have fun!