Search Portal

The RDMC Search Portal consists of two components:

The full interactive API reference is available at api.nfdixcs.org/registryservice/docs.


Registering a Container

When a user publishes an RDMC container and opts in to the Search Portal, the system automatically sends a registration request to the Registry Service. The request is a POST call with a JSON payload describing the container and its metadata.


API Endpoint

POST https://api.nfdixcs.org/registryservice/register

JSON Payload

Below is the full structure of the JSON payload sent to the Registry Service:

{
  "external_id":             "<container_id>",
  "external_id_scheme":      "<manifest_schema_version>",
  "pid":                     "<epic_pid>",
  "pid_scheme":              "<pid_scheme>",
  "rdmc_version":            "<rdmc_version>",
  "manifest_schema_version": "<manifest_schema_version>",
  "manifest_file_path":      "https://hdl.handle.net/<pid>?noredirect",
  "relations":               [],
  "relatedIdentifiers":      null,
  "manifest": {
    "RDMC Version":           "<rdmc_version>",
    "RDMC Title":             "<container_name>",
    "Manifest-Schemaversion": "<manifest_schema_version>",
    "source_system":          "<source_system>",
    "publisher":              "<publisher>",
    "publication_year":       "<YYYY>",
    "resource_type":          "<resource_type>",
    "identifier": {
      "type":  "<pid_scheme>",
      "value": "<epic_pid>"
    },
    "title":   "<container_name>",
    "version": "<rdmc_version>",
    "dates": {
      "issued":  "YYYY-MM-DD",
      "updated": "YYYY-MM-DD"
    },
    "rights": "<license>",
    "RDMC Metadata": {
      "Description":       "<description>",
      "Contributors":      [],
      "Subject":           "<subject>",
      "Keywords":          "<keywords>",
      "License":           "<license>",
      "container-concept": "<container_concept>"
    }
  }
}

Calling the API

To register a container, send a POST request to the /rdmcs endpoint:

import json
import requests

url     = "https://api.nfdixcs.org/registryservice/rdmcs"
headers = {"Content-Type": "application/json"}

response = requests.post(
    url,
    headers=headers,
    data=json.dumps(payload, default=str),
    timeout=10
)

response.raise_for_status()

Here payload refers to the JSON structure described in the JSON Payload section above.