.. oai-pmh documentation master file, created by
   sphinx-quickstart on Thu May 21 11:06:44 2015.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.


DH-oaipmh Service
=================

The DARIAH-DE OAI-PMH Service is the service to harvest all metadata from the collections stored in the DARIAH-DE Repository. So the `Generic Search <https://search.de.dariah.eu>`_ can index all the data that is entered into the `Collection registry <https://colreg.de.dariah.eu>`_.


API Documentation
-----------------

#VERSION
^^^^^^^^
To check the current productive OAI-PMH version simply try:

  	https://repository.de.dariah.eu/1.0/oaipmh/oai/version

and you get the currently deployed version of the DARIAH-DE OAI-PMH Service.

#GET /oai
^^^^^^^^^

Every OAI request requires the parameter verb. Depending on this verb there are some required and some optional further parameters. The possible values for verb are:

==================== ====================================================================
Verb                 Description
==================== ====================================================================
Identify             Some information about the repository that will be harvested
GetRecord            Get the metadata of a specific item of the repository
ListRecords          Get all records of the repository. The amount of records can be limited by other parameter. See the regarding section
ListIdentifiers      Same as the listRecords request but only the header of the listRecords request is given
ListMetadataFormats  Shows the metadata formats supported by the repository or all metadata formats provided for a specific item
ListSets             Shows the structure of the repository
==================== ====================================================================

Identify Request
^^^^^^^^^^^^^^^^

==================== ======  =============================== =====================
Parameter            Type    Description                     Required
==================== ======  =============================== =====================
verb=Identify        String  Verb for the identify request   yes
==================== ======  =============================== =====================

**Response**

	Objects belonging to a project, filter objects which are in an aggregation in same project.

**Example Request**

    `https://repository.de.dariah.eu/1.0/oaipmh/oai?verb=Identify <https://repository.de.dariah.eu/1.0/oaipmh/oai?verb=Identify>`_

**Example Response**

.. literalinclude:: identifyResponse.xml
   :language: xml


GetRecord Request
^^^^^^^^^^^^^^^^^

===============  =======  =========================================================  ==========
Parameter        Type     Description                                                Required
===============  =======  =========================================================  ==========
verb=GetRecord   String   Verb for the GetRecord request                             yes
identifier       URI      Identifier for the item inside the repository              yes
metadataPrefix   String   Prefix to get the items in a specific metadata format      yes
===============  =======  =========================================================  ==========

**Response**

	Objects belonging to a project, filter objects which are in an aggregation in same project.

**Example Request**

	`https://repository.de.dariah.eu/1.0/oaipmh/oai?verb=GetRecord&identifier=21.11113/0000-000B-C8EF-7&metadataPrefix=oai_dc <https://repository.de.dariah.eu/1.0/oaipmh/oai?verb=GetRecord&identifier=21.11113/0000-000B-C8EF-7&metadataPrefix=oai_dc>`_

**Example Response**

.. literalinclude:: getRecordResponse.xml
    :language: xml


ListRecords Request
^^^^^^^^^^^^^^^^^^^

================  =======  =========================================================  ==========
Parameter         Type     Description                                                Required
================  =======  =========================================================  ==========
verb=ListRecords  String   Verb for the GetRecord request                             yes
from              date     Start time of the responded items                          no
to                date     End time of the responded items                            no
set               String   Get just item for a specific term                          no
metadataPrefix    String   Prefix to get the items in a specific metadata format      yes
resumptionToken	  String   Fetching large responses in smaller parts not implemented  no
================  =======  =========================================================  ==========

**Response**

	Objects belonging to a project, filter objects which are in an aggregation in same project.

**Example Request**

    `https://repository.de.dariah.eu/1.0/oaipmh/oai?verb=ListRecords&metadataPrefix=oai_dc <https://repository.de.dariah.eu/1.0/oaipmh/oai?verb=ListRecords&metadataPrefix=oai_dc>`_

**Example Response**

.. literalinclude:: ListRecordsResponse.xml
    :language: xml
    :lines: 1-45

...

.. literalinclude:: ListRecordsResponse.xml
    :language: xml
    :lines: 1959-1982


ListIdentifiers Request
^^^^^^^^^^^^^^^^^^^^^^^

====================  =======  =========================================================  ==========
Parameter             Type     Description                                                Required
====================  =======  =========================================================  ==========
verb=ListIdentifiers  String   Verb for the ListIdentifiers request                       yes
metadataPrefix        String   Format for the metadata response                           yes
from                  date     Start time of the responded items                          no
to                    date     End time of the responded items                            no
set                   String   Get just item for a specific term                          no
resumptionToken       String   Fetching large responses in smaller parts not implemented  no
====================  =======  =========================================================  ==========

**Response**

	Objects belonging to a project, filter objects which are in an aggregation in same project.

**Example Request**

    `https://repository.de.dariah.eu/1.0/oaipmh/oai?verb=ListIdentifiers&metadataPrefix=oai_dc <https://repository.de.dariah.eu/1.0/oaipmh/oai?verb=ListIdentifiers&metadataPrefix=oai_dc>`_

**Example Response**

.. literalinclude:: ListIdentifiersResponse.xml
   :language: xml
   :lines: 1-26

...

.. literalinclude:: ListIdentifiersResponse.xml
   :language: xml
   :lines: 395-406


ListMetadataformats Request
^^^^^^^^^^^^^^^^^^^^^^^^^^^

========================  =======  =========================================================  ==========
Parameter                 Type     Description                                                Required
========================  =======  =========================================================  ==========
verb=ListMetadataFormats  String   Verb for the listIdentifiers request                       yes
identifier                URI      Identifier of the requested item                           no
========================  =======  =========================================================  ==========

**Response**

	Objects belonging to a project, filter objects which are in an aggregation in same project.

**Example Request**

    `https://repository.de.dariah.eu/1.0/oaipmh/oai?verb=ListMetadataFormats <https://repository.de.dariah.eu/1.0/oaipmh/oai?verb=ListMetadataFormats>`_

**Example Response**

.. literalinclude:: ListMetadataFormatsResponse.xml
   :language: xml


ListSets Request
^^^^^^^^^^^^^^^^

========================  =======  =========================================================  ==========
Parameter                 Type     Description                                                 Required
========================  =======  =========================================================  ==========
verb=ListSets             String   Verb for the ListSets request                              yes
resumptionToken           String   Fetching large responses in smaller parts not implemented  no
========================  =======  =========================================================  ==========

**Response**

	Objects belonging to a project, filter objects which are in an aggregation in same project.

**Example Request**

    `https://repository.de.dariah.eu/1.0/oaipmh/oai?verb=ListSets <https://repository.de.dariah.eu/1.0/oaipmh/oai?verb=ListSets>`_

**Example Response**

.. literalinclude:: ListSetsResponse.xml
    :language: xml


Sources
-------
See oaipmh_sources_


Bugtracking
-----------
See oaipmh_bugtracking_


License
-------
See LICENCE_


.. _LICENCE: https://projects.gwdg.de/projects/oai-pmh/repository/revisions/master/entry/LICENSE.txt
.. _oaipmh_sources: https://projects.gwdg.de/projects/oai-pmh/repository
.. _oaipmh_bugtracking: https://projects.gwdg.de/projects/dariah-de-repository/work_packages