
com.zandero.rest.writer.JaxResponseWriter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rest.vertx Show documentation
Show all versions of rest.vertx Show documentation
JAX-RS REST annotation processor for vert.x verticals
The newest version!
package com.zandero.rest.writer;
import com.zandero.rest.*;
import com.zandero.rest.data.*;
import com.zandero.rest.exception.*;
import com.zandero.utils.*;
import io.vertx.core.http.*;
import io.vertx.ext.web.*;
import javax.ws.rs.core.*;
import java.util.*;
import static io.vertx.core.http.HttpHeaders.*;
/**
* Produces vert.x response based on JAX-RS response builder output
*/
public class JaxResponseWriter implements HttpResponseWriter {
@Context
RoutingContext context;
@SuppressWarnings("unchecked")
@Override
public void write(Response result, HttpServerRequest request, HttpServerResponse response) throws Throwable {
Assert.notNull(result, "Expected result but got null!");
response.setStatusCode(result.getStatus());
addHeaders(result, response);
if (result.getEntity() != null) {
// try to find appropriate writer ...
String mediaType = response.headers().get(CONTENT_TYPE);
HttpResponseWriter writer;
try {
writer = (HttpResponseWriter) ClassFactory.get(mediaType, RestRouter.getWriters(), context);
} catch (ClassFactoryException | ContextException e) {
writer = null;
}
if (writer != null) {
writer.write(result.getEntity(), request, response);
} else {
response.end(result.getEntity().toString());
}
} else {
response.end();
}
}
private static void addHeaders(Response jaxrsResponse, HttpServerResponse response) {
if (jaxrsResponse.getMetadata() != null) {
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy