summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2020-06-13 20:01:26 +0200
committerDaniel Friesel <derf@finalrewind.org>2020-06-13 20:01:26 +0200
commit551954cdbc9adbdaaad8a93a668d9426511217f3 (patch)
tree3084e75ba9d945aac97b9eaaab9d52bfb042c636
parente27ac328e643e55252e3166092901098a64cbf8c (diff)
Add Swagger API docs
Work in progress. Only status is documented at the moment.
-rw-r--r--public/static/api.yml171
1 files changed, 171 insertions, 0 deletions
diff --git a/public/static/api.yml b/public/static/api.yml
new file mode 100644
index 0000000..152340a
--- /dev/null
+++ b/public/static/api.yml
@@ -0,0 +1,171 @@
+openapi: 3.0.3
+info:
+ title: travelynx
+ version: 0.1.0
+ description: Travelynx API
+servers:
+ - url: 'https://travelynx.de/api/v1'
+ - url: 'https://travellynx.de/api/v1'
+ - url: 'https://travelynx.finalrewind.org/api/v1'
+tags:
+ - name: Status
+ description: 'Query check-in and journey status'
+ - name: Travel
+ description: 'Check into and out of trains'
+ - name: Import
+ description: 'Import a journey'
+paths:
+ '/status/{token}':
+ get:
+ tags:
+ - Status
+ summary: Retrieves a single status.
+ parameters:
+ - in: path
+ name: token
+ schema:
+ $ref: '#/components/schemas/token'
+ required: true
+ description: Status Token
+ responses:
+ '200':
+ description: OK.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/status'
+components:
+ responses:
+ UnauthorizedError:
+ description: >-
+ Unauthorized. Will be returned by the server if no user was logged in or
+ wrong credentials were supplied.
+ NotFoundError:
+ description: >-
+ Not found The parameters in the request were valid, but the server did
+ not find a corresponding object.
+ ForbiddenError:
+ description: >-
+ Forbidden The logged in user is not permitted to perform this action.
+ (e.g. edit a status of another user.)
+ schemas:
+ token:
+ type: string
+ description: Status Token as configured on Travelynx User Panel
+ status:
+ type: object
+ properties:
+ deprecated:
+ type: boolean
+ example: false
+ description: if true, this API version is no longer supported and will be removed in the future
+ checkedIn:
+ type: boolean
+ example: true
+ description: Is the user currently checked into a train?
+ fromStation:
+ $ref: '#/components/schemas/departureStatus'
+ toStation:
+ $ref: '#/components/schemas/arrivalStatus'
+ intermediateStops:
+ type: array
+ items:
+ $ref: '#/components/schemas/intermediateStop'
+ train:
+ $ref: '#/components/schemas/train'
+ actionTime:
+ type: number
+ example: 1556083434
+ description: checkin/checkout epoch
+ departureStatus:
+ type: object
+ properties:
+ name:
+ type: string
+ example: "Essen Hbf"
+ ds100:
+ type: string
+ example: "EE"
+ uic:
+ type: number
+ example: 8000098
+ latitude:
+ type: number
+ example: 51.451355
+ longitude:
+ type: number
+ example: 7.014793
+ scheduledTime:
+ type: number
+ example: 1556083680
+ realtime:
+ type: number
+ example: 1556083680
+ arrivalStatus:
+ type: object
+ description: If journey destination is not yet known, all fields are null
+ nullable: true
+ properties:
+ name:
+ type: string
+ example: "Essen Stadtwald"
+ ds100:
+ type: string
+ example: "EESA"
+ uic:
+ type: number
+ example: 8001896
+ latitude:
+ type: number
+ example: 51.422853
+ longitude:
+ type: number
+ example: 7.023296
+ scheduledTime:
+ type: number
+ example: 1556083980
+ nullable: true
+ description: If arrival time is not yet known, this field is null
+ realtime:
+ type: number
+ example: 1556083980
+ nullable: true
+ description: If arrival time is not yet known, this field is null
+ intermediateStop:
+ type: object
+ properties:
+ name:
+ type: string
+ example: "Essen Süd"
+ scheduledArrival:
+ type: number
+ example: 1556083800
+ nullable: true
+ realArrival:
+ type: number
+ example: 1556083800
+ nullable: true
+ scheduledDeparture:
+ type: number
+ example: 1556083860
+ nullable: true
+ realDeparture:
+ type: number
+ example: 1556083860
+ nullable: true
+ train:
+ type: object
+ properties:
+ type:
+ type: string
+ example: "S"
+ line:
+ type: string
+ example: "6"
+ no:
+ type: string
+ example: "30634"
+ id:
+ type: string
+ example: "7512500863736016593"
+ description: IRIS-specific train ID