summaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@vespa.ai>2024-02-26 16:53:46 +0100
committerBjørn Christian Seime <bjorncs@vespa.ai>2024-02-26 16:53:46 +0100
commit13a291616728ab53c7f989d2848b2c8659e87ae9 (patch)
tree0851d5bd56b3e68a267dd2d2535cde168a1f0a4d /container-core
parent1720954b69970e93aa442b26f1cc08ce4d643b8e (diff)
Add default mapper for `Json`
Diffstat (limited to 'container-core')
-rw-r--r--container-core/src/main/java/com/yahoo/restapi/RestApiMappers.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/container-core/src/main/java/com/yahoo/restapi/RestApiMappers.java b/container-core/src/main/java/com/yahoo/restapi/RestApiMappers.java
index 3204c6c348a..4ec170b5749 100644
--- a/container-core/src/main/java/com/yahoo/restapi/RestApiMappers.java
+++ b/container-core/src/main/java/com/yahoo/restapi/RestApiMappers.java
@@ -13,6 +13,7 @@ import com.yahoo.yolean.Exceptions;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.util.List;
import java.util.Optional;
import java.util.logging.Level;
@@ -42,6 +43,10 @@ public class RestApiMappers {
new ResponseMapperHolder<>(HttpResponse.class, (context, entity) -> entity),
new ResponseMapperHolder<>(String.class, (context, entity) -> new MessageResponse(entity)),
new ResponseMapperHolder<>(Slime.class, (context, entity) -> new SlimeJsonResponse(entity)),
+ new ResponseMapperHolder<>(Json.class, (ctx, entity) -> new HttpResponse(200) {
+ @Override public void render(OutputStream out) throws IOException { out.write(entity.toJson(true).getBytes(UTF_8)); }
+ @Override public String getContentType() { return "application/json"; }
+ }),
new ResponseMapperHolder<>(JsonNode.class,
(context, entity) -> new JacksonJsonResponse<>(200, entity, context.jacksonJsonMapper(), true)));