diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2020-11-02 16:53:24 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2020-11-02 16:53:24 +0100 |
commit | fbc26a2e19461952f82c2f24224ae3a3a4c4d29c (patch) | |
tree | 24d4044f4d6aac3f1e08d62a33c0392fa3990587 /vespaclient-container-plugin | |
parent | fd229417d0f7bb65fa1b6c428c49dfbbe6f86edc (diff) |
Use field set of document type when not set, for document GETs
Diffstat (limited to 'vespaclient-container-plugin')
2 files changed, 6 insertions, 4 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java index 8287b6f1630..35f3a5d4057 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java @@ -311,8 +311,10 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { private ContentChannel getDocument(HttpRequest request, DocumentPath path, ResponseHandler handler) { enqueueAndDispatch(request, handler, () -> { - DocumentOperationParameters parameters = parametersFromRequest(request, CLUSTER, FIELD_SET) - .withResponseHandler(response -> { + DocumentOperationParameters rawParameters = parametersFromRequest(request, CLUSTER, FIELD_SET); + if (rawParameters.fieldSet().isEmpty()) + rawParameters = rawParameters.withFieldSet(path.documentType().orElseThrow() + ":[document]"); + DocumentOperationParameters parameters = rawParameters.withResponseHandler(response -> { handle(path, handler, response, (document, jsonResponse) -> { if (document != null) { jsonResponse.writeSingleDocument(document); diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java index c85db0582eb..2775250765f 100644 --- a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java +++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java @@ -289,7 +289,7 @@ public class DocumentV1ApiTest { // GET with full document ID is a document get operation. access.session.expect((id, parameters) -> { assertEquals(doc1.getId(), id); - assertEquals(parameters(), parameters); + assertEquals(parameters().withFieldSet("music:[document]"), parameters); parameters.responseHandler().get().handleResponse(new DocumentResponse(0, doc1)); return new Result(Result.ResultType.SUCCESS, null); }); @@ -306,7 +306,7 @@ public class DocumentV1ApiTest { // GET with not encoded / in user specified part of document id is perfectly OK ... щ(ಥДಥщ) access.session.expect((id, parameters) -> { assertEquals(new DocumentId("id:space:music::one/two/three"), id); - assertEquals(parameters(), parameters); + assertEquals(parameters().withFieldSet("music:[document]"), parameters); parameters.responseHandler().get().handleResponse(new DocumentResponse(0)); return new Result(Result.ResultType.SUCCESS, null); }); |