diff --git a/invenio_app_rdm/records_ui/views/records.py b/invenio_app_rdm/records_ui/views/records.py index 304ff01c9..c1ae63242 100644 --- a/invenio_app_rdm/records_ui/views/records.py +++ b/invenio_app_rdm/records_ui/views/records.py @@ -28,6 +28,7 @@ from invenio_rdm_records.records.systemfields.access.access_settings import ( AccessSettings, ) +from invenio_rdm_records.resources.config import record_serializers from invenio_rdm_records.resources.serializers import UIJSONSerializer from invenio_stats.proxies import current_stats from invenio_users_resources.proxies import current_user_resources @@ -146,6 +147,15 @@ def record_detail( pid_value, record, files, media_files, is_preview=False, include_deleted=False ): """Record detail page (aka landing page).""" + if not request.accept_mimetypes.accept_html: + serializers = ( + current_app.config["RDM_RECORDS_SERIALIZERS"] or record_serializers + ) + accept_mimetype = request.accept_mimetypes.best_match(serializers.keys()) + if accept_mimetype: + serializer = serializers[accept_mimetype] + return serializer.serializer.serialize_object(record.to_dict()) + files_dict = None if files is None else files.to_dict() media_files_dict = None if media_files is None else media_files.to_dict()