import akka.actor.ActorSystem;
import akka.http.javadsl.Http;
import akka.http.javadsl.model.HttpRequest;
import akka.http.javadsl.model.HttpResponse;
import akka.japi.function.Function;
import akka.stream.ActorMaterializer;
import akka.stream.Materializer;
import java.util.concurrent.CompletionStage;
public class Main {
public static void main(String[] args) {
ActorSystem system = ActorSystem.create();
Materializer materializer = ActorMaterializer.create(system);
Function<HttpRequest, CompletionStage<HttpResponse>> route = request ->
CompletableFuture.supplyAsync(() -> {
return HttpResponse.create().withEntity("Hello, World!");
}, system.dispatcher());
Http.get(system).bindAndHandleAsync(
route::apply,
ConnectHttp.toHost("localhost", 8080),
materializer
);
System.out.println("Server online at http://localhost:8080/");
}
}
import akka.actor.ActorSystem;
import akka.http.javadsl.Http;
import akka.http.javadsl.model.HttpRequest;
import akka.http.javadsl.model.HttpResponse;
import akka.http.javadsl.server.RoutingDsl;
import akka.stream.ActorMaterializer;
import akka.stream.Materializer;
import java.util.concurrent.CompletionStage;
public class Main {
public static void main(String[] args) {
ActorSystem system = ActorSystem.create();
Materializer materializer = ActorMaterializer.create(system);
RoutingDsl routing = new RoutingDsl();
routing.get(() ->
routing.path("hello", () ->
routing.complete("Hello, World!")
)
);
Function<HttpRequest, CompletionStage<HttpResponse>> route = routing.create();
Http.get(system).bindAndHandleAsync(
route::apply,
ConnectHttp.toHost("localhost", 8080),
materializer
);
System.out.println("Server online at http://localhost:8080/");
}
}
import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Props;
import akka.http.javadsl.Http;
import akka.http.javadsl.model.HttpRequest;
import akka.http.javadsl.model.HttpResponse;
import akka.http.javadsl.server.AllDirectives;
import akka.stream.ActorMaterializer;
import akka.stream.Materializer;
import java.util.concurrent.CompletionStage;
public class Main extends AllDirectives {
private class RequestHandler extends AbstractActor {
@Override
public Receive createReceive() {
return receiveBuilder()
.match(HttpRequest.class, request -> {
sender().tell(HttpResponse.create().withEntity("Hello, World!"), self());
})
.build();
}
}
public static void main(String[] args) {
ActorSystem system = ActorSystem.create();
Materializer materializer = ActorMaterializer.create(system);
ActorRef requestHandler = system.actorOf(Props.create(RequestHandler.class));
Main main = new Main();
Route route = main.route(
get(() ->
path("hello", () ->
completeWithInstance(requestHandler, HttpRequest.class, materializer)
)
)
);
Http.get(system).bindAndHandle(route.flow(system, materializer), ConnectHttp.toHost("localhost", 8080));
System.out.println("Server online at http://localhost:8080/");
}
}