|
37 | 37 | package nl.dtls.fairdatapoint.api.controller.search; |
38 | 38 |
|
39 | 39 | import io.swagger.v3.oas.annotations.media.Schema; |
| 40 | +import io.swagger.v3.oas.annotations.parameters.RequestBody; |
40 | 41 | import io.swagger.v3.oas.annotations.tags.Tag; |
41 | 42 | import jakarta.servlet.http.HttpServletResponse; |
42 | 43 | import org.eclipse.rdf4j.http.server.readonly.sparql.EvaluateResult; |
@@ -74,21 +75,24 @@ public SearchSparqlController(Repository rdf4jRepository, SparqlQueryEvaluator s |
74 | 75 | * Method body copied from org.eclipse.rdf4j.http.server.readonly.QueryResponder. |
75 | 76 | */ |
76 | 77 | @PreAuthorize("isAuthenticated()") |
77 | | - @PostMapping(path = "/search/sparql", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) |
| 78 | + @PostMapping(path = "/search/sparql", consumes = MediaType.APPLICATION_JSON_VALUE) |
78 | 79 | public void sparqlPost( |
79 | 80 | @Schema(example = MediaType.APPLICATION_JSON_VALUE) |
80 | 81 | @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, |
84 | 84 | HttpServletResponse response |
85 | 85 | ) throws IOException { |
86 | 86 | // enforce default accept header for wildcard |
87 | 87 | final String accept = ("*/*".equals(acceptHeader)) ? MediaType.APPLICATION_JSON_VALUE : acceptHeader; |
88 | 88 | try { |
89 | 89 | final EvaluateResultHttpResponse result = new EvaluateResultHttpResponse(response); |
90 | 90 | 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) |
92 | 96 | ); |
93 | 97 | } |
94 | 98 | catch (MalformedQueryException | IllegalStateException | IOException exception) { |
@@ -131,4 +135,5 @@ public OutputStream getOutputstream() throws IOException { |
131 | 135 | } |
132 | 136 | } |
133 | 137 |
|
| 138 | + public record SparqlQuery(String query, String defaultGraphUri, String namedGraphUri) {} |
134 | 139 | } |
0 commit comments