From dc6684d51f459d06c3344e074aef6ad5c2c3e175 Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Thu, 19 Sep 2019 15:24:08 +0200 Subject: Move general REST API classes to com.yahoo.restapi --- .../java/com/yahoo/restapi/ResourceResponse.java | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 container-core/src/main/java/com/yahoo/restapi/ResourceResponse.java (limited to 'container-core/src/main/java/com/yahoo/restapi/ResourceResponse.java') diff --git a/container-core/src/main/java/com/yahoo/restapi/ResourceResponse.java b/container-core/src/main/java/com/yahoo/restapi/ResourceResponse.java new file mode 100644 index 00000000000..4852bfafa60 --- /dev/null +++ b/container-core/src/main/java/com/yahoo/restapi/ResourceResponse.java @@ -0,0 +1,42 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.restapi; + +import com.yahoo.container.jdisc.HttpRequest; +import com.yahoo.container.jdisc.HttpResponse; +import com.yahoo.slime.Cursor; +import com.yahoo.slime.JsonFormat; +import com.yahoo.slime.Slime; + +import java.io.IOException; +import java.io.OutputStream; + +/** + * Returns a response containing an array of links to sub-resources + * + * @author bratseth + */ +public class ResourceResponse extends HttpResponse { + + private final Slime slime = new Slime(); + + public ResourceResponse(HttpRequest request, String ... subResources) { + super(200); + Cursor resourceArray = slime.setObject().setArray("resources"); + for (String subResource : subResources) { + Cursor resourceEntry = resourceArray.addObject(); + resourceEntry.setString("url", new Uri(request.getUri()) + .append(subResource) + .withTrailingSlash() + .toString()); + } + } + + @Override + public void render(OutputStream stream) throws IOException { + new JsonFormat(true).encode(stream, slime); + } + + @Override + public String getContentType() { return "application/json"; } + +} -- cgit v1.2.3