1.2.1 • Published 1 year ago

@vicentecalfo/tropicos-api-wrapper v1.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

@vicentecalfo/tropicos-api-wrapper

This wrapper allows you to call methods for gathering data from the Tropicos web service (API).

What is Tropicos? Click here.

Installation

Install the package with:

npm install @vicentecalfo/tropicos-api-wrapper --save

Usage

The package needs to be configured with your API key, which is available in the Tropicos web service help page. This key must be used in all service calls.

All methods return an observable, however you can use promises as well.

Initialize with config object. Property | Default | Required | Description ---|---|---|--- apiKey | null | Yes | Long string of characters and numbers, required to authorize access to the service. Request API Key. format | json | No | Choose how you want your output to be formatted (possible values: json and xml).

import { TropicosApi } from '@vicentecalfo/tropicos-api-wrapper';

const tropicosApi = new TropicosApi({
    apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
    format: 'json' // output format (optional)
});

// Example:
// Method to access search endpoint
// http://services.tropicos.org/help?method=SearchNameXml
tropicosApi
    .search({
        name: 'poa annua',
        type: 'wildcard'
    })
    .subscribe(
        (data) => console.log(data.body)
        (error) => console.log(error)
    );

Available Methods

The name of the methods follows the paths of each endpoint.

All methods can receive optional request parameters (reqOptions). You can check all the options here.

MethodEndpointParametersDescriptionTropicos Documentation
search(qs,reqOptions)Name/SearchView jsonTo search for a NameView
summary(id,reqOptions)Name/{id}id (number | required)Return summary data for a Name with a given id.View
synonyms(id,reqOptions)Name/{id}Synonymsid (number | required)Return all Synonyms for a Name with a given id.View
acceptedNames(id, reqOptions)Name/{id}AcceptedNamesid (number | required)Return all Accepted Names for a Name with a given id.View
distributions(id, reqOptions)Name/{id}Distributionsid (number | required)Return all Distribution records for a Name with a given id.View
references(id, reqOptions)Name/{id}Referencesid (number | required)Return all Reference records for a Name with a given id.View
images(id, reqOptions)Name/{id}Imagesid (number | required)Return all Image records for a Name with a given id.View
chromosomeCounts(id, reqOptions)Name/{id}ChromosomeCountsid (number | required)Return all chromosome count records for a Name with a given id.View
higherTaxa(id, reqOptions)Name/{id}HigherTaxaid (number | required)Return all higher taxa for a Name with a given id.View
specimens(id, reqOptions)Name/{id}Specimensid (number | required)Return all specimens for a Name with a given id.View
listNames(qs, reqOptions)Name/ListView jsonTo return Names.View

Search parameters

// Search parameters
{
    nameid?: string;
    name?: string;
    commonname?: string;
    family?: string;
    orderby?: number;
    sortorder?: string;
    pagesize?: number;
    startrow?: number;
    type?: "wildcard" | "exact"; // default wildcard
}

List Names parameters

// List Names parameters
{
    startid: number;
    pagesize?: number;
}

Sample

GET References from a JSON REST API

import { TropicosApi } from '@vicentecalfo/tropicos-api-wrapper';

const tropicosApi = new TropicosApi({
    apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
    format: 'json'
});

// http://services.tropicos.org/help?method=GetNameReferencesXml
tropicosApi
	.references(
        25509881, // The Name Id (required)
        { json: true } // Automatically parses the JSON string in the response
    )
	.subscribe((data) => console.log(data.body), (error) => console.log(error));

Using Promises

import { TropicosApi } from '@vicentecalfo/tropicos-api-wrapper';

const tropicosApi = new TropicosApi({
    apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
    format: 'json'
});

// http://services.tropicos.org/help?method=SearchNameXml
tropicosApi
	.search({ name: 'poa annua' }, { json: true })
	.toPromise()
	.then((data) => console.log(data.body))
	.catch((error) => console.log(error));

Documentation

Can't find what you need in the readme? Check the official Tropicos Web Service documentation page.