Skip to content

genericmethod/citymapper-api-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Citymapper Java API Wrapper

This Java module allows you to quickly connect the the Citymapper API. Code is generated using Swagger with Retrofit and Gson as supporting libraries.

Citymapper API Description file

The Citymapper API description file is based on the Open API Specification. This description file can be used to generate an API client in a variety of programming languages. Please refer to swagger-codegen to generate client code in other languages.

Citymapper API key

An api key can be obtained by signing up here

Installation

Clone this repo to your local working directory.

git clone  https://github.com/genericmethod/citymapper-api-java.git

Install the dependency to your local repo. This will use the citymapper.yaml API definition file found in the resources folder to generate the API client.

mvn clean install

Add the following maven dependency to your pom.xml

<dependency>
    <groupId>com.citymapper.api</groupId>
    <artifactId>citymapper-api-java</artifactId>
    <version>1.0</version>
</dependency>

Usage

To begin using this library, build a retrofit instance

Retrofit retrofit = new ApiClient().getAdapterBuilder().build();

Create an API instance

TravelTimeApi travelTimeApi = retrofit.create(TravelTimeApi.class);

Execute an API call and get the body

    Retrofit retrofit = new ApiClient("apikey", API_KEY).getAdapterBuilder().build();
    TravelTimeApi travelTimeApi = retrofit.create(TravelTimeApi.class);
    final TravelTime time = travelTimeApi.traveltimeGet("51.5258156,-0.08833669999999999",
            "51.5094,-0.002124",
            null,
            null).execute().body();
    assertNotNull(time);

Travel Time API call example:

    Retrofit retrofit = new ApiClient("apikey",API_KEY).getAdapterBuilder().build();
    TravelTimeApi travelTimeApi = retrofit.create(TravelTimeApi.class);
    final TravelTime time = travelTimeApi.traveltimeGet("51.5258156,-0.08833669999999999",
            "51.5094,-0.002124",
            null,
            null).execute().body();

Single Point Coverage API call example:

    Retrofit retrofit = new ApiClient("apikey", API_KEY).getAdapterBuilder().build();
    CoverageApi coverageApi = retrofit.create(CoverageApi.class);
    final Coverage coverage = coverageApi.singlepointcoverageGet("51.5258156,-0.08833669999999999").execute().body();

Multiple Point Coverage API call example:

    Retrofit retrofit = new ApiClient("apikey",API_KEY).getAdapterBuilder().build();
    CoverageApi coverageApi = retrofit.create(CoverageApi.class);

    Coverage coverage = new Coverage();
    List<Point> points = new ArrayList<Point>();
    Point londonPoint = new Point();
    londonPoint.setCoord(Arrays.asList(51.5072,0.1275));
    points.add(londonPoint);
    Point pyongyangPoint = new Point();
    pyongyangPoint.setCoord(Arrays.asList(39.0194, 125.7381));
    pyongyangPoint.setId("Pyongyang");
    points.add(pyongyangPoint);

    coverage.setPoints(points);

    final Coverage coverageResult = coverageApi.coveragePost(coverage).execute().body();