PlaintextAndJsonServer.java 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package lowlevel;
  2. import common.Message;
  3. import org.rapidoid.buffer.Buf;
  4. import org.rapidoid.http.AbstractHttpServer;
  5. import org.rapidoid.http.HttpStatus;
  6. import org.rapidoid.http.HttpUtils;
  7. import org.rapidoid.http.MediaType;
  8. import org.rapidoid.net.abstracts.Channel;
  9. import org.rapidoid.net.impl.RapidoidHelper;
  10. public class PlaintextAndJsonServer extends AbstractHttpServer {
  11. private static final byte[] URI_PLAINTEXT = "/plaintext".getBytes();
  12. private static final byte[] URI_JSON = "/json".getBytes();
  13. private static final byte[] HELLO_WORLD = "Hello, World!".getBytes();
  14. public PlaintextAndJsonServer() {
  15. super("X", "", "", false);
  16. }
  17. @Override
  18. protected HttpStatus handle(Channel ctx, Buf buf, RapidoidHelper data) {
  19. if (data.isGet.value) {
  20. if (matches(buf, data.path, URI_PLAINTEXT)) {
  21. return ok(ctx, data.isKeepAlive.value, HELLO_WORLD, MediaType.TEXT_PLAIN);
  22. } else if (matches(buf, data.path, URI_JSON)) {
  23. return serializeToJson(HttpUtils.noReq(), ctx, data.isKeepAlive.value, new Message("Hello, World!"));
  24. }
  25. }
  26. return HttpStatus.NOT_FOUND;
  27. }
  28. }