Skip to content

jaddek/metlink-api-http-client-typescript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Metlink API HTTP Client (Wellington, New Zealand)

https://opendata.metlink.org.nz/

Install

--

How to use

Example

Look

example.ts

Host

https://api.opendata.metlink.org.nz/v1

Init

Client

import {MetlinkHttpClientInterface} from "./Contracts";
import {MetlinkHttpClientBuilder} from "./MetlinkHttpClientBuilder";

const options = {
    timeout: 1000
};
const metlinkHttpClient: MetlinkHttpClientInterface
    = MetlinkHttpClientBuilder.buildWithAxios(token, options);

OR

import {MetlinkHttpClientInterface} from "./Contracts";
import {MetlinkHttpClientBuilder} from "./MetlinkHttpClientBuilder";

const options = {
    timeout: 1000
};
const metlinkHttpClient: MetlinkHttpClientInterface
    = MetlinkHttpClientBuilder.buildWithAxiosAndDecorate(token, options);

Wrapped response body

const metlinkHttpClient = new ResponseDataDecorator(httpClient);

Tests

Config with env

.jest/setEnvVars

Use

TOKEN_FILE=.token jest tests

Unresolved issues:

  • GTFS: StopTimes raise: 403
  • GTFS: Shapes raise: 400
  • GTFS-RT: Service Alerts: Validation Scheme issue
  • GTFS-RT: Trip Updates: Validation Scheme issue
  • Stop Predictions: 400

API

GTFS

Agencies

Transit agencies with service represented in this dataset.

metlinkHttpClient.getGtfsAgencies();

Calendars

Service dates specified using a weekly schedule with start and end dates.

metlinkHttpClient.getGtfsCalendar();

Calendar Dates

Exceptions for the services defined in the calendar.

metlinkHttpClient.getGtfsCalendarDates();

Feed info

Dataset metadata, including publisher, version, and expiration information.

metlinkHttpClient.getGtfsFeedInfo();

Routes

Transit routes. A route is a group of trips that are displayed to riders as a single service.

metlinkHttpClient.getGtfsRoutes();

Shapes

Rules for mapping vehicle travel paths, sometimes referred to as route alignments.

metlinkHttpClient.getGtfsShapes("shapeId");

Stop Times

Times that a vehicle arrives at and departs from stops for each trip.

metlinkHttpClient.getGtfsStopTimes("tripId");

Stops

Stops where vehicles pick up or drop off riders. Also defines stations and station entrances.

metlinkHttpClient.getGtfsStops();

Transfers

Rules for making connections at transfer points between routes.

metlinkHttpClient.getGtfsTransfers();

Trips

Trips for each route. A trip is a sequence of two or more stops that occur during a specific time period.

metlinkHttpClient.getGtfsTrips(
    "start",
    "extraFields",
    "routeId",
    "tripId",
    "end"
);

GTFS-RT

Service Alerts

Information about unforeseen events affecting routes, stops, or the network. Use accept header 'application/x-protobuf' to receive in Protobuf format.

metlinkHttpClient.getGtfsServiceAlerts();

Trip Updates

Delays, cancellations, changed routes. Use accept header 'application/x-protobuf' to receive in Protobuf format.

metlinkHttpClient.getGtfsRtTripUpdates();

Vehicle Positions

Information about vehicles including location. Use accept header 'application/x-protobuf' to receive in Protobuf format.

metlinkHttpClient.getGtfsRtVehiclePositions();

Other

Stop Departure Predictions

Predictions for when vehicles will arrive and depart through stops.

metlinkHttpClient.getStopPredictions("stopId");

Trip Cancellations

Historical, current, and known future data for trip cancellations.

const query: Query = new Query();
query.dateCreated = Date.now().toString();
metlinkHttpClient.getTripCancellation(query);