APIs
Introduction to various Application Programming Interfaces (API) (and metadata formats) available for dynamic query of our services.
Running the examples
Python code examples on this site are self-contained uv scripts: each declares its Python version and dependencies inline, following PEP 723, so uv can run any example — downloaded locally or straight from its published URL — with no environment setup or module installation. See the project README for details.
OAI-PMH
From the OAI-PMH home page:
The Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH) is a low-barrier mechanism for repository interoperability. Data Providers are repositories that expose structured metadata via OAI-PMH. Service Providers then make OAI-PMH service requests to harvest that metadata. OAI-PMH is a set of six verbs or services that are invoked within HTTP.
For more information see https://www.openarchives.org/pmh/.
OpenSearch
From the OpenSearch Wikipedia entry:
OpenSearch is a collection of technologies that allow publishing of search results in a format suitable for syndication and aggregation. It is a way for websites and search engines to publish search results in a standard and accessible format.
For more information see the OpenSearch specification.
DSpace REST API
DSpace REST API, first introduced in DSpace version 7. For more information see REST Contract / Documentation. This contract provides detailed information on how to interact with the API, what endpoints are available, etc. All features/capabilities of the DSpace UI are available in this API.
OpenAPI Specification
The OpenAPI Specification (OAS) defines a standard, programming language-agnostic interface description for HTTP APIs, which allows both humans and computers to discover and understand the capabilities of a service without requiring access to source code, additional documentation, or inspection of network traffic. When properly defined via OpenAPI, a consumer can understand and interact with the remote service with a minimal amount of implementation logic. Similar to what interface descriptions have done for lower-level programming, the OpenAPI Specification removes guesswork in calling a service.
OGC API - Records
From the OGC API - Records home page:
OGC API - Records is a multi-part Standard that offers the capability to create, modify, and query metadata on the Web. The Standard enables the discovery of geospatial resources by standardizing the way collections of descriptive information about the resources (metadata) are exposed.
Part 1: Core is an approved standard of the Open Geospatial Consortium
(OGC). A Records service tells a client what it offers: /conformance
lists the parts of the standard the server implements, /collections
lists the record collections it holds, and each collection publishes JSON
Schema documents describing its records — /queryables names the
properties a record carries, /sortables names the properties results
can be ordered by. Records are returned as GeoJSON Features, a format
GIS tools and spatial data libraries already read.
Where a keyword protocol such as OpenSearch matches records that mention a term, an OGC catalog’s records describe geospatial resources — datasets, web services, scanned maps — with typed properties such as resource class, access rights, and spatial coverage, and one catalog may aggregate records from many institutions.
For more information see https://ogcapi.ogc.org/records/.
Search/Retrieve via URL (SRU)
From the Search/Retrieve via URL Wikipedia entry:
Search/Retrieve via URL (SRU) is a standard search protocol for Internet search queries, utilizing Contextual Query Language (CQL), a standard query syntax for representing queries.
From the Library of Congress SRU home page:
Search/Retrieve via URL (SRU) is a standard for searching and retrieving information from remote information services. It is based on the Z39.50 protocol, but uses HTTP as the transport mechanism and XML as the encoding format.
JSON-LD
From the JSON-LD Wikipedia entry:
JSON-LD (JavaScript Object Notation for Linked Data) is a method of encoding linked data using JSON and of serializing data similarly to traditional JSON. It is meant to be simple to create by modifying JSON documents. JSON-LD is a World Wide Web Consortium Recommendation initially developed by the JSON for Linking Data Community Group, transferred to the RDF Working Group for review, improvement and standardization, and now maintained by the JSON-LD Working Group.
JSON-LD can be served as a standalone JSON-LD document or embedded in HTML, commonly as schema.org structured data. See Introduction to structured data markup in Google Search for information on embedding JSON-LD as structured data.
