Skip to content

Commit 19ba658

Browse files
committed
(wip)
1 parent 1427896 commit 19ba658

2 files changed

Lines changed: 14 additions & 7 deletions

File tree

src/main/java/nl/dtls/fairdatapoint/api/controller/search/SearchSparqlController.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
package nl.dtls.fairdatapoint.api.controller.search;
3838

3939
import io.swagger.v3.oas.annotations.media.Schema;
40+
import io.swagger.v3.oas.annotations.parameters.RequestBody;
4041
import io.swagger.v3.oas.annotations.tags.Tag;
4142
import jakarta.servlet.http.HttpServletResponse;
4243
import org.eclipse.rdf4j.http.server.readonly.sparql.EvaluateResult;
@@ -74,21 +75,24 @@ public SearchSparqlController(Repository rdf4jRepository, SparqlQueryEvaluator s
7475
* Method body copied from org.eclipse.rdf4j.http.server.readonly.QueryResponder.
7576
*/
7677
@PreAuthorize("isAuthenticated()")
77-
@PostMapping(path = "/search/sparql", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
78+
@PostMapping(path = "/search/sparql", consumes = MediaType.APPLICATION_JSON_VALUE)
7879
public void sparqlPost(
7980
@Schema(example = MediaType.APPLICATION_JSON_VALUE)
8081
@RequestHeader(value = HttpHeaders.ACCEPT) String acceptHeader,
81-
@Schema(example = "\"\"") @RequestParam(value = "default-graph-uri", required = false) String defaultGraphUri,
82-
@Schema(example = "\"\"") @RequestParam(value = "named-graph-uri", required = false) String namedGraphUri,
83-
@Schema(example = "SELECT * WHERE {?subject ?predicate ?object}") @RequestParam(value = "query") String query,
82+
@Schema(example = "{\"query\": \"SELECT * WHERE {?subject ?predicate ?object}}\"")
83+
@RequestBody SparqlQuery sparqlQuery,
8484
HttpServletResponse response
8585
) throws IOException {
8686
// enforce default accept header for wildcard
8787
final String accept = ("*/*".equals(acceptHeader)) ? MediaType.APPLICATION_JSON_VALUE : acceptHeader;
8888
try {
8989
final EvaluateResultHttpResponse result = new EvaluateResultHttpResponse(response);
9090
sparqlQueryEvaluator.evaluate(
91-
result, rdf4jRepository, query, accept, toArray(defaultGraphUri), toArray(namedGraphUri)
91+
result, rdf4jRepository,
92+
sparqlQuery.query,
93+
accept,
94+
toArray(sparqlQuery.defaultGraphUri),
95+
toArray(sparqlQuery.namedGraphUri)
9296
);
9397
}
9498
catch (MalformedQueryException | IllegalStateException | IOException exception) {
@@ -131,4 +135,5 @@ public OutputStream getOutputstream() throws IOException {
131135
}
132136
}
133137

138+
public record SparqlQuery(String query, String defaultGraphUri, String namedGraphUri) {}
134139
}

src/test/java/nl/dtls/fairdatapoint/acceptance/search/sparql/TestSparqlPost.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.fasterxml.jackson.core.type.TypeReference;
2828
import com.fasterxml.jackson.databind.ObjectMapper;
2929
import nl.dtls.fairdatapoint.WebIntegrationTest;
30+
import nl.dtls.fairdatapoint.api.controller.search.SearchSparqlController;
3031
import org.eclipse.rdf4j.rio.RDFFormat;
3132
import org.junit.jupiter.api.DisplayName;
3233
import org.junit.jupiter.api.Test;
@@ -76,12 +77,13 @@ public void sparqlPostUnauthenticated() throws JsonProcessingException {
7677
@Test
7778
public void sparqlPostSelectAll() throws JsonProcessingException {
7879
// prepare request
79-
MultiValueMap<String, String> requestBody = new LinkedMultiValueMap<>();
80-
requestBody.add("query", querySelectAll);
80+
SearchSparqlController.SparqlQuery requestBody = new SearchSparqlController.SparqlQuery(
81+
querySelectAll, null, null);
8182
RequestEntity<?> request = RequestEntity
8283
.post(url)
8384
.header(HttpHeaders.AUTHORIZATION, ALBERT_TOKEN)
8485
.accept(MediaType.APPLICATION_JSON)
86+
.contentType(MediaType.APPLICATION_JSON)
8587
.body(requestBody);
8688

8789
// perform

0 commit comments

Comments
 (0)