UNPKG

cdli-api-client

Version:

A client for the CDLI REST API

157 lines (115 loc) 5.89 kB
# <img width="150" src="logo.png" /> Framework API Client Client for CDLI framework API. - [Install](#install) - [Getting started](#getting-started) - [Command-Line Interface](#command-line-interface) - [Programming Interface](#programming-interface) ## Install A prerequisite for this client is [Node.JS](https://nodejs.org/en/) and a package manager like [npm](https://npmjs.com), which usually comes with it. npm install -g cdli-api-client Or install it locally into an existing project: npm install cdli-api-client Alternatively, the command can be run with [npx](https://www.npmjs.com/package/npx): npx cdli-api-client --help ## Getting started Right now, the client supports two basic operations: - [exporting](#export) parts of the database as linked data (or specifically N-Triples). The parts that can be chosen are the types of entities in the catalogue, such as artifacts, materials, proveniences, inscriptions and periods. - [searching](#search) artifacts in the database. ### Command-Line Interface cdli [command] Commands: cdli export Export catalog and text data cdli search Export catalog and text data Options: --version Show version number [boolean] --host, -h Host URL to use for API calls [string] [default: "https://cdli.earth/"] --format, -f File format [choices: "ndjson", "csv", "tsv", "ntriples", "bibtex", "atf"] --output-file, -o Output file (outputs to stdout by default) --help Show help [boolean] #### Export cdli export Export catalog and text data Options: --version Show version number [boolean] -h, --host Host URL to use for API calls [string] [default: "https://cdli.earth/"] -f, --format File format [choices: "ndjson", "csv", "tsv", "ntriples", "ttl", "bibtex", "atf"] -o, --output-file Output file (outputs to stdout by default) --help Show help [boolean] -e, --entities Which types of entities to fetch [array] [choices: "abbreviations", "archives", "artifacts", "artifact-assets", "artifacts-external-resources", "artifacts-materials", "entities-external-resources", "entities-names", "authors", "collections", "dynasties", "external-resources", "genres", "inscriptions", "journals", "languages", "locations", "materials", "material-aspects", "material-colors", "periods", "places", "proveniences", "publications", "regions", "rulers"] [default: []] -i, --index Which index(es) to fetch [array] [default: []] So to export place-related entities from a locally-running framework instance you could do this: cdli export \ --host http://localhost:2354/ \ --entities archives proveniences regions \ --output-file places.nt Fetching all artifacts from the live server could look like this: cdli export \ --host https://cdli.earth/ \ --entities artifacts \ --format csv \ --output-file artifacts.csv Export all linked data: cdli export \ --host https://cdli.earth/ \ --entities abbreviations archives artifacts artifact-assets \ artifacts-external-resources artifacts-materials authors collections \ dynasties entities-external-resources entities-names external-resources \ genres inscriptions journals languages locations materials material-aspects \ material-colors periods places proveniences publications regions rulers \ --format ntriples \ --output-file all.nt #### Search cdli search Search artifacts in the catalog Simple search: -q, --query Search query [array] --queryCategory, --qc Search category [array] [choices: "keyword", "publication", "collection", "provenience", "period", "transliteration", "translation", "id"] --queryOperator, --qo Search operator [array] [choices: "AND", "OR"] Advanced search: --advancedField, --af Search field [array] --advancedQuery, --aq Search query [array] Filter: --filterField, --fk Filter by field [array] --filterValue, --fv Filter by value [array] Options: --version Show version number [boolean] -h, --host Host URL to use for API calls [string] [default: "https://cdli.earth/"] -f, --format File format [choices: "ndjson", "csv", "tsv", "ntriples", "bibtex", "atf"] -o, --output-file Output file (outputs to stdout by default) --help Show help [boolean] Example: cdli search -q holland --fk genre --fv "Official or display" -f tsv ### Programming Interface ```js const CDLI = require('cdli-api-client') const client = new CDLI.Client('http://localhost:2354/') // process logging client.on('log', msg => process.stderr.write(msg)) client.export(['archives', 'proveniences', 'regions' ], 'places.nt') .then(entities => { for (const { status, reason } of entities) { if (status === 'rejected') { console.error(reason) } } }) ```