PlaintextAndJsonServer.java 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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.MediaType;
  7. import org.rapidoid.net.abstracts.Channel;
  8. import org.rapidoid.net.impl.RapidoidHelper;
  9. public class PlaintextAndJsonServer extends AbstractHttpServer {
  10. private static final byte[] URI_PLAINTEXT = "/plaintext".getBytes();
  11. private static final byte[] URI_JSON = "/json".getBytes();
  12. private static final byte[] HELLO_WORLD = "Hello, World!".getBytes();
  13. public PlaintextAndJsonServer() {
  14. super("X", "", "", false);
  15. }
  16. @Override
  17. protected HttpStatus handle(Channel ctx, Buf buf, RapidoidHelper data) {
  18. if (data.isGet.value) {
  19. if (matches(buf, data.path, URI_PLAINTEXT)) {
  20. return ok(ctx, data.isKeepAlive.value, HELLO_WORLD, MediaType.TEXT_PLAIN);
  21. } else if (matches(buf, data.path, URI_JSON)) {
  22. return serializeToJson(ctx, data.isKeepAlive.value, new Message("Hello, World!"));
  23. }
  24. }
  25. return HttpStatus.NOT_FOUND;
  26. }
  27. }