Start documenting the Travel API
This commit is contained in:
parent
551954cdbc
commit
60bb0b6df5
1 changed files with 108 additions and 15 deletions
|
@ -19,7 +19,7 @@ paths:
|
||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- Status
|
- Status
|
||||||
summary: Retrieves a single status.
|
summary: Retrieves a user's status
|
||||||
parameters:
|
parameters:
|
||||||
- in: path
|
- in: path
|
||||||
name: token
|
name: token
|
||||||
|
@ -29,25 +29,39 @@ paths:
|
||||||
description: Status Token
|
description: Status Token
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: OK.
|
description: OK
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/status'
|
$ref: '#/components/schemas/status'
|
||||||
components:
|
'/travel':
|
||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- Travel
|
||||||
|
summary: Check into or out of a train
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
oneOf:
|
||||||
|
- $ref: '#/components/schemas/checkinRequest'
|
||||||
|
- $ref: '#/components/schemas/checkoutRequest'
|
||||||
|
- $ref: '#/components/schemas/undoRequest'
|
||||||
|
examples:
|
||||||
|
checkin:
|
||||||
|
value: {"action": "checkin", "token": "FIXME"}
|
||||||
|
checkout:
|
||||||
|
value: {"action": "checkout", "token": "FIXME"}
|
||||||
|
undo:
|
||||||
|
value: {"action": "undo", "token": "FIXME"}
|
||||||
responses:
|
responses:
|
||||||
UnauthorizedError:
|
'200':
|
||||||
description: >-
|
description: OK
|
||||||
Unauthorized. Will be returned by the server if no user was logged in or
|
content:
|
||||||
wrong credentials were supplied.
|
application/json:
|
||||||
NotFoundError:
|
schema:
|
||||||
description: >-
|
$ref: '#/components/schemas/travelResponse'
|
||||||
Not found The parameters in the request were valid, but the server did
|
components:
|
||||||
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:
|
schemas:
|
||||||
token:
|
token:
|
||||||
type: string
|
type: string
|
||||||
|
@ -77,6 +91,74 @@ components:
|
||||||
type: number
|
type: number
|
||||||
example: 1556083434
|
example: 1556083434
|
||||||
description: checkin/checkout epoch
|
description: checkin/checkout epoch
|
||||||
|
travelRequest:
|
||||||
|
type: object
|
||||||
|
discriminator:
|
||||||
|
propertyName: action
|
||||||
|
mapping:
|
||||||
|
checkin: checkinRequest
|
||||||
|
checkout: checkoutRequest
|
||||||
|
undo: undoRequest
|
||||||
|
properties:
|
||||||
|
token:
|
||||||
|
type: string
|
||||||
|
action:
|
||||||
|
type: string
|
||||||
|
enum: ['checkin', 'checkout', 'undo']
|
||||||
|
required:
|
||||||
|
- token
|
||||||
|
- action
|
||||||
|
checkinRequest:
|
||||||
|
allOf:
|
||||||
|
- $ref: '#/components/schemas/travelRequest'
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
train:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
example: "ICE"
|
||||||
|
no:
|
||||||
|
type: string
|
||||||
|
example: "209"
|
||||||
|
fromStation:
|
||||||
|
$ref: '#/components/schemas/station'
|
||||||
|
toStation:
|
||||||
|
$ref: '#/components/schemas/station'
|
||||||
|
comment:
|
||||||
|
type: string
|
||||||
|
required: ['train', 'fromStation']
|
||||||
|
checkoutRequest:
|
||||||
|
allOf:
|
||||||
|
- $ref: '#/components/schemas/travelRequest'
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
force:
|
||||||
|
type: boolean
|
||||||
|
description: "If true: perform checkout now. May lead to log entries without arrival time"
|
||||||
|
default: false
|
||||||
|
toStation:
|
||||||
|
$ref: '#/components/schemas/station'
|
||||||
|
comment:
|
||||||
|
type: string
|
||||||
|
required: ['toStation']
|
||||||
|
undoRequest:
|
||||||
|
allOf:
|
||||||
|
- $ref: '#/components/schemas/travelRequest'
|
||||||
|
- type: object
|
||||||
|
travelResponse:
|
||||||
|
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
|
||||||
|
success:
|
||||||
|
type: boolean
|
||||||
|
example: true
|
||||||
|
status:
|
||||||
|
$ref: '#/components/schemas/status'
|
||||||
departureStatus:
|
departureStatus:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
@ -169,3 +251,14 @@ components:
|
||||||
type: string
|
type: string
|
||||||
example: "7512500863736016593"
|
example: "7512500863736016593"
|
||||||
description: IRIS-specific train ID
|
description: IRIS-specific train ID
|
||||||
|
station:
|
||||||
|
oneOf:
|
||||||
|
- type: string
|
||||||
|
description: Station Name
|
||||||
|
example: "Essen Hbf"
|
||||||
|
- type: string
|
||||||
|
description: DS100 Code
|
||||||
|
example: "EE"
|
||||||
|
- type: number
|
||||||
|
description: EVA number
|
||||||
|
example: 8000098
|
||||||
|
|
Loading…
Reference in a new issue