You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
198 lines
5.0 KiB
198 lines
5.0 KiB
openapi: '3.0.2'
|
|
info:
|
|
title: RENFE WSMR API
|
|
version: '1.0'
|
|
servers:
|
|
- url: https://wsmr.renfe.es/wsmRestApi/v1/
|
|
paths:
|
|
/stations:
|
|
get:
|
|
tags:
|
|
- station
|
|
summary: List all stations
|
|
parameters:
|
|
- $ref: '#/components/parameters/app'
|
|
- $ref: '#/components/parameters/appVersion'
|
|
- $ref: '#/components/parameters/osName'
|
|
- $ref: '#/components/parameters/osVersion'
|
|
- $ref: '#/components/parameters/language'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetStationsResponse'
|
|
/stations/nearest:
|
|
get:
|
|
tags:
|
|
- station
|
|
summary: List nearest stations
|
|
parameters:
|
|
- $ref: '#/components/parameters/app'
|
|
- $ref: '#/components/parameters/appVersion'
|
|
- $ref: '#/components/parameters/osName'
|
|
- $ref: '#/components/parameters/osVersion'
|
|
- $ref: '#/components/parameters/language'
|
|
- in: query
|
|
name: lat
|
|
required: true
|
|
description: Latitude
|
|
schema:
|
|
type: number
|
|
format: float
|
|
example: 41.392710
|
|
- in: query
|
|
name: lon
|
|
required: true
|
|
description: Longitude
|
|
schema:
|
|
type: number
|
|
format: float
|
|
example: 2.109310
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetStationsResponse'
|
|
/trains:
|
|
get:
|
|
tags:
|
|
- train
|
|
summary: Find train connections for a specific route
|
|
parameters:
|
|
- $ref: '#/components/parameters/app'
|
|
- $ref: '#/components/parameters/appVersion'
|
|
- $ref: '#/components/parameters/osName'
|
|
- $ref: '#/components/parameters/osVersion'
|
|
- $ref: '#/components/parameters/language'
|
|
- in: query
|
|
name: outwardStation
|
|
required: true
|
|
description: Code of outward station
|
|
schema:
|
|
type: string
|
|
example: 60000
|
|
- in: query
|
|
name: returnStation
|
|
required: true
|
|
description: Code of return station
|
|
schema:
|
|
type: string
|
|
example: 71801
|
|
- in: query
|
|
name: outwardDate
|
|
required: true
|
|
description: Date for outward journey (DD-MM-YYYY)
|
|
schema:
|
|
type: string
|
|
format: date
|
|
pattern: /([0-9]{2}-[0-9]{2}-[0-9]{4}/
|
|
example: 01-05-2022
|
|
- in: query
|
|
name: returnDate
|
|
description: Date for return journey (DD-MM-YYYY)
|
|
schema:
|
|
type: string
|
|
format: date
|
|
pattern: /([0-9]{2}-[0-9]{2}-[0-9]{4}/
|
|
example: 02-05-2022
|
|
- in: query
|
|
name: adult
|
|
description: Number of adult passengers
|
|
schema:
|
|
type: number
|
|
format: int
|
|
example: 1
|
|
- in: query
|
|
name: child
|
|
description: Number of children
|
|
schema:
|
|
type: number
|
|
format: int
|
|
- in: query
|
|
name: babyUnderFour
|
|
description: Number of babies under 4 years
|
|
schema:
|
|
type: number
|
|
format: int
|
|
- in: query
|
|
name: senior
|
|
description: Number of senior passengers
|
|
schema:
|
|
type: number
|
|
format: int
|
|
- in: query
|
|
name: promoCode
|
|
description: Promo Code
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
components:
|
|
parameters:
|
|
app:
|
|
name: app
|
|
required: true
|
|
in: header
|
|
schema:
|
|
type: string
|
|
default: VMR
|
|
appVersion:
|
|
name: appVersion
|
|
required: true
|
|
in: header
|
|
schema:
|
|
type: string
|
|
example: 01.00.00
|
|
osName:
|
|
name: osName
|
|
required: false
|
|
in: header
|
|
schema:
|
|
type: string
|
|
example: 0R
|
|
osVersion:
|
|
name: osVersion
|
|
required: true
|
|
in: header
|
|
schema:
|
|
type: string
|
|
example: 1
|
|
language:
|
|
name: language
|
|
required: false
|
|
in: header
|
|
schema:
|
|
type: string
|
|
example: 'en'
|
|
schemas:
|
|
GetStationsResponse:
|
|
type: object
|
|
required:
|
|
- station
|
|
properties:
|
|
station:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Station'
|
|
lastUpdateStations:
|
|
type: string
|
|
format: 'date-time'
|
|
pattern: /([0-9]{4})-(?:[0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2}).([0-9]{3})/
|
|
example: "2022-03-01 01:06:25.034"
|
|
Station:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: "71801"
|
|
description:
|
|
type: string
|
|
example: "Barcelona-Sans"
|
|
stationType:
|
|
type: string
|
|
example: "1" |