diff --git a/pycsw/ogc/api/records.py b/pycsw/ogc/api/records.py index 76e908db9..0b786bbaa 100644 --- a/pycsw/ogc/api/records.py +++ b/pycsw/ogc/api/records.py @@ -33,7 +33,7 @@ import json import logging import os -from urllib.parse import urlencode +from urllib.parse import urlencode, quote from pygeofilter.parsers.ecql import parse as parse_ecql from pygeofilter.parsers.cql2_json import parse as parse_cql2_json @@ -1129,6 +1129,19 @@ def record2json(record, url, collection, stac_item=False): rdl.append(link2) + for lnk in [record.parentidentifier, record.relation]: + if lnk and len(lnk.strip()) > 0: + if not lnk.startswith('http'): + lnk = f"{url}/collections/{collection}/items/{quote(lnk)}" + record_dict['links'].append({ + 'rel': 'related', + 'href': lnk, + 'name': 'related record', + 'description': 'related record', + 'type': 'application/json' + }) + + record_dict['links'].append({ 'rel': 'collection', 'type': 'application/json',