From 54cbe69dd357ff85efc6e692292cf4a9ab6bcdf7 Mon Sep 17 00:00:00 2001 From: "michele.artini" Date: Tue, 30 Jan 2024 14:40:23 +0100 Subject: [PATCH] oai explorer api --- dnet-app/apps/dnet-datasource-manager/pom.xml | 6 +++ .../dsm/controller/OtherController.java | 41 +++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/dnet-app/apps/dnet-datasource-manager/pom.xml b/dnet-app/apps/dnet-datasource-manager/pom.xml index dd8e096..8b41bc1 100644 --- a/dnet-app/apps/dnet-datasource-manager/pom.xml +++ b/dnet-app/apps/dnet-datasource-manager/pom.xml @@ -24,6 +24,12 @@ + + + ${project.groupId} + dnet-oai-common + ${project.version} + diff --git a/dnet-app/apps/dnet-datasource-manager/src/main/java/eu/dnetlib/services/dsm/controller/OtherController.java b/dnet-app/apps/dnet-datasource-manager/src/main/java/eu/dnetlib/services/dsm/controller/OtherController.java index 41aff94..2339363 100644 --- a/dnet-app/apps/dnet-datasource-manager/src/main/java/eu/dnetlib/services/dsm/controller/OtherController.java +++ b/dnet-app/apps/dnet-datasource-manager/src/main/java/eu/dnetlib/services/dsm/controller/OtherController.java @@ -9,10 +9,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import eu.dnetlib.common.clients.DnetServiceClientFactory; import eu.dnetlib.common.clients.VocabularyClient; +import eu.dnetlib.common.oai.OaiClient; +import eu.dnetlib.common.oai.OaiResponse; import eu.dnetlib.domain.common.KeyValue; import eu.dnetlib.domain.vocabulary.VocabularyTerm; import eu.dnetlib.services.dsm.service.ProtocolService; @@ -60,4 +63,42 @@ public class OtherController extends AbstractDsmController { return map; } + @GetMapping("/oai-explorer/info") + public OaiResponse oaiExplorerInfo(@RequestParam final String baseUrl) throws Exception { + return new OaiClient().info(baseUrl); + } + + @GetMapping("/oai-explorer/sets") + public OaiResponse oaiExplorerSets(@RequestParam final String baseUrl, @RequestParam(required = false) final String token) throws Exception { + return new OaiClient().listSets(baseUrl, token); + } + + @GetMapping("/oai-explorer/mdformats") + public OaiResponse oaiExplorerMdFormats(@RequestParam final String baseUrl) throws Exception { + return new OaiClient().listMetadataFormats(baseUrl); + } + + @GetMapping("/oai-explorer/records") + public OaiResponse oaiExplorerRecords(@RequestParam final String baseUrl, + @RequestParam(defaultValue = "oai_dc") final String format, + @RequestParam(required = false) final String set, + @RequestParam(required = false) final String token) throws Exception { + return new OaiClient().listRecords(baseUrl, format, set, token); + } + + @GetMapping("/oai-explorer/identifiers") + public OaiResponse oaiExplorerIdentifiers(@RequestParam final String baseUrl, + @RequestParam(defaultValue = "oai_dc") final String format, + @RequestParam(required = false) final String set, + @RequestParam(required = false) final String token) throws Exception { + return new OaiClient().listIdentifiers(baseUrl, format, set, token); + } + + @GetMapping("/oai-explorer/record") + public OaiResponse oaiExplorerSingleRecord(@RequestParam final String baseUrl, + @RequestParam(defaultValue = "oai_dc") final String format, + @RequestParam final String id) throws Exception { + return new OaiClient().getRecord(baseUrl, format, id); + } + }