OAI-PMH Sets
OAI PMH Sets¶
Used for managing OAI-PMH sets for selective harvesting.
Hint
To access any of these endpoints, the admin role is needed.
Search sets¶
GET /api/oaipmh/sets
Parameters
| Name | Type | Location | Description | 
|---|---|---|---|
| sort | string | query | Sort search results. - name(default)- spec- created- updated | 
| sort_direction | string | query | Sort direction of search results. - asc(default)- desc | 
| size | integer | query | Specify number of items in the results page (default: 10). | 
| page | integer | query | Specify the page of results. | 
| accept | string | header | - application/json(default)- application/vnd.inveniordm.v1+json | 
Specifically for the application/vnd.inveniordm.v1+json format:
Request
GET /api/oaipmh/sets HTTP/1.1
Response
For all sets:
HTTP/1.1 200 OK
Content-Type: application/json
{
  "hits": {
    "hits": [{
      "id": "{id}",
      "name": "RDM Conference",
      "spec": "rdm-conference"
      "search_pattern": "elasticsearch_query:to_match_records",
      "description": "Entries presented at RDM conference",
      "links": {
        "self": "https://127.0.0.1/api/oaipmh/sets/{id}",
        "oai-listrecords": "https://127.0.0.1/oai2d?verb=ListRecords&metadataPrefix=oai_dc&spec=rdm-conference",
        "oai-listidentifiers": "https://127.0.0.1/oai2d?verb=ListIdentifiers&metadataPrefix=oai_dc&spec=rdm-conference",
      },
      "created": "2022-03-21T10:20:39",
      "updated": "2022-03-21T20:20:39",
    },
    {
      ...
    },
    {
      ...
    }]
  "total": 14
  },
  "links": {
    "oai-listsets": "https://127.0.0.1/oai2d?verb=ListSets",
    "oai-listrecords": "https://127.0.0.1/oai2d?verb=ListRecords&metadataPrefix=oai_dc",
    "oai-listidentifiers": "https://127.0.0.1/oai2d?verb=ListIdentifiers&metadataPrefix=oai_dc",
    "oai-identify": "https://127.0.0.1/oai2d?verb=Identify",
  },
}
Each hit looks like a set entry below.
Get a set¶
GET /api/oaipmh/sets/{id}
Parameters
| Name | Type | Location | Description | 
|---|---|---|---|
| id | int | path | Identifier of the set, e.g. 1 | 
| accept | string | header | - application/json(default)- application/vnd.inveniordm.v1+json | 
Request
GET /api/oaipmh/sets/{id} HTTP/1.1
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
  "id": "{id}",
  "name": "RDM Conference",
  "spec": "rdm-conference"
  "search_pattern": "elasticsearch_query:to_match_records",
  "description": "Entries presented at RDM conference",
  "links": {
    "self": "https://127.0.0.1/api/oaipmh/sets/{id}",
    "oai-listrecords": "https://127.0.0.1/oai2d?verb=ListRecords&metadataPrefix=oai_dc&spec=rdm-conference",
    "oai-listidentifiers": "https://127.0.0.1/oai2d?verb=ListIdentifiers&metadataPrefix=oai_dc&spec=rdm-conference",
  },
  "created": "2022-03-21T10:20:39",
  "updated": "2022-03-21T20:20:39",
}
Create a set¶
POST /api/oaipmh/sets
Parameters
| Name | Type | Location | Description | 
|---|---|---|---|
| name | string | body | name of the set, e.g. RDM Conference | 
| spec | string | body | spec of the set, e.g. rdm-conference. Used for OAI-PMH selective harvesting | 
| search_pattern | string | body | elasticsearch query of the set, e.g. elasticsearch_query:to_match_records | 
| description | string | body | description of the set, e.g. Entries presented at RDM conference | 
| accept | string | header | - application/json(default)- application/vnd.inveniordm.v1+json | 
Request
POST /api/oaipmh/sets
Response
HTTP/1.1 201 CREATED
Content-Type: application/json
{
  "id": "{id}",
  "name": "RDM Conference",
  "spec": "rdm-conference"
  "search_pattern": "elasticsearch_query:to_match_records",
  "description": "Entries presented at RDM conference",
  "links": {
    "self": "https://127.0.0.1/api/oaipmh/sets/{id}",
    "oai-listrecords": "https://127.0.0.1/oai2d?verb=ListRecords&metadataPrefix=oai_dc&spec=rdm-conference",
    "oai-listidentifiers": "https://127.0.0.1/oai2d?verb=ListIdentifiers&metadataPrefix=oai_dc&spec=rdm-conference",
  },
  "created": "2022-03-21T10:20:39",
  "updated": "2022-03-21T20:20:39",
}
Update a set¶
PUT /api/oaipmh/sets/{id}
Parameters
| Name | Type | Location | Description | 
|---|---|---|---|
| id | int | path | Identifier of the set, e.g. 1 | 
| name | string | body | name of the set, e.g. RDM Conference | 
| search_pattern | string | body | elasticsearch query of the set, e.g. elasticsearch_query:to_match_records | 
| description | string | body | description of the set, e.g. Entries presented at RDM conference | 
| accept | string | header | - application/json(default)- application/vnd.inveniordm.v1+json | 
It is not allowed to update the spec of a set. The correct way of doing it is to delete it and create a new one.
Request
PUT /api/oaipmh/sets
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
  "id": "{id}",
  "name": "RDM Conference",
  "spec": "rdm-conference"
  "search_pattern": "elasticsearch_query:to_match_records",
  "description": "Entries presented at RDM conference",
  "links": {
    "self": "https://127.0.0.1/api/oaipmh/sets/{id}",
    "oai-listrecords": "https://127.0.0.1/oai2d?verb=ListRecords&metadataPrefix=oai_dc&spec=rdm-conference",
    "oai-listidentifiers": "https://127.0.0.1/oai2d?verb=ListIdentifiers&metadataPrefix=oai_dc&spec=rdm-conference",
  },
  "created": "2022-03-21T10:20:39",
  "updated": "2022-03-21T20:20:39",
}
Delete a set¶
DELETE /api/oaipmh/sets/{id}
Parameters
| Name | Type | Location | Description | 
|---|---|---|---|
| id | int | path | Identifier of the set, e.g. 1 | 
Request
DELETE /api/oaipmh/sets/{id}
Response
HTTP/1.1 204 No Content
Get metadata formats¶
Returns the available metadata formats, in which records can be retrieved via the OAI-PMH endpoint.
GET /api/oaipmh/formats
Parameters
| Name | Type | Location | Description | 
|---|---|---|---|
| accept | string | header | - application/json(default)- application/vnd.inveniordm.v1+json | 
Request
GET /api/oaipmh/formats HTTP/1.1
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
  "hits": {
    "hits": [
      {
        'id': 'oai_dc',
        'schema': 'http://www.openarchives.org/OAI/2.0/oai_dc.xsd',
        'namespace': 'http://www.openarchives.org/OAI/2.0/oai_dc/',
      },
      ...
    ],
    "total": 3
  }
}