@vicentecalfo/tropicos-api-wrapper
v1.2.1
Published
This wrapper allows you to call methods for gathering data from the Tropicos web service (API).
Downloads
8
Maintainers
Readme
@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.
Method | Endpoint | Parameters | Description | Tropicos Documentation
---|---|---|---|---
search(qs,reqOptions)
| Name/Search
| View json | To search for a Name | View
summary(id,reqOptions)
| Name/{id}
| id (number | required) | Return summary data for a Name with a given id. | View
synonyms(id,reqOptions)
| Name/{id}Synonyms
| id (number | required) | Return all Synonyms for a Name with a given id. | View
acceptedNames(id, reqOptions)
| Name/{id}AcceptedNames
| id (number | required) | Return all Accepted Names for a Name with a given id. | View
distributions(id, reqOptions)
| Name/{id}Distributions
| id (number | required) | Return all Distribution records for a Name with a given id. | View
references(id, reqOptions)
| Name/{id}References
| id (number | required) | Return all Reference records for a Name with a given id. | View
images(id, reqOptions)
| Name/{id}Images
| id (number | required) | Return all Image records for a Name with a given id. | View
chromosomeCounts(id, reqOptions)
| Name/{id}ChromosomeCounts
| id (number | required) | Return all chromosome count records for a Name with a given id. | View
higherTaxa(id, reqOptions)
| Name/{id}HigherTaxa
| id (number | required) | Return all higher taxa for a Name with a given id. | View
specimens(id, reqOptions)
| Name/{id}Specimens
| id (number | required) | Return all specimens for a Name with a given id. | View
listNames(qs, reqOptions)
| Name/List
| View json | To 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.