Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). UI Patterns (SDC in Drupal UI) 2.0.18 Minor update available for module ui_patterns (2.0.18). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

REST OAI-PMH

805 sites Security covered
View on drupal.org

This module provides an OAI-PMH endpoint that exposes Drupal entities as Dublin Core metadata. It uses Drupal's REST module and allows you to define OAI-PMH sets and records using Views. Metadata field mappings can be configured through RDF, Metatag, or custom modules.

Basic Overview

This modules exposes entities as Dublin Core in an OAI-PMH endpoint using Views, REST, and a metadata mapping module of your choice.

OAI-PMH Endpoint

The endpoint uses Drupal's core REST module. If you have the REST UI module enabled, the REST resource can be found at /admin/config/services/rest/resource/oai_pmh/edit. However, this should not be necessary, as you should not need to alter any of the core REST settings.

Sets and Records

To create OAI-PMH sets, you can use Drupal's core Views module to create one or more Views with an "Entity Reference" display. No other View display types (e.g. block, page, REST Export, etc) are supported.

  • For Views with a contextual filter to an entity reference field, the entities referenced by the respective field will be used as the sets. With this approach, one View could expose multiple sets to the OAI-PMH endpoint
  • For Views with no contextual filter, the View display's display ID will be the setSpec, and the View display's label will be the setName.

You will then be able to select which View(s) in your system to expose to OAI-PMH in this module's configuration form (located at /admin/config/services/rest/oai-pmh). You can associate as many Views as are defined in your system with OAI, and can select both Views with and without contextual filters to show in OAI-PMH.

You will also be able to disable OAI "set" functionality in this module's config form, but will still need to use Views to tell the OAI endpoint which entities should be exposed.

Metadata Field Mapping

The Dublin Core field mappings can be provided by any one of the following methods:

  • Drupal's core RDF module: you will need to add Dublin Core field mappings in an RDF config file for the entity type(s) (e.g. node, taxonomy_term) that are exposed to OAI-PMH.
  • Metatag Dublin Core or Dublin Core Advanced: you will need to use Metatag's UI at /admin/config/search/metatag to add Dublin Core mappings for the entity type(s) that are exposed to OAI-PMH
  • Custom module or theme overriding hook_rest_oai_pmh_metadata_template_alter
  • Other modules may be supported by creating an issue

Metadata Formats

Provided by rest_oai_pmh

  • Dublin Core
  • MODS

Additional formats

Similar projects

  • Views OAI-PMH: Views OAI-PMH leverages Views' functionality to expose the OAI-PMH endpoint; all of the OAI-PMH settings are conveniently located in a single View admin interface. However, Views OAI-PMH does not support sets. Also, mapping fields to Dublin Core is specific to the module, so other Drupal functionality may not be able to leverage the field mapping, which could result in duplicate effort for the site administrator.

Activity

Total releases
9
First release
Aug 2025
Latest release
2 months ago
Releases (12 mo)
9 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Release date
2.3.2 Stable May 13, 2026
2.3.1 Stable May 13, 2026
2.3.0 Stable May 13, 2026
2.2.1 Stable Feb 23, 2026
2.x-dev Dev Feb 19, 2026
2.2.0 Stable Feb 19, 2026
2.1.1 Stable Dec 8, 2025
2.1.0 Stable Dec 8, 2025
2.0.3 Stable Aug 7, 2025