package io.muoncore.examples;
import io.muoncore.Muon;
import io.muoncore.MuonBuilder;
import io.muoncore.config.AutoConfiguration;
import io.muoncore.config.MuonConfigBuilder;
import io.muoncore.protocol.reactivestream.server.PublisherLookup;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import reactor.rx.broadcast.Broadcaster;
import java.io.IOException;
import java.net.URISyntaxException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.util.Map;
import static io.muoncore.protocol.requestresponse.server.HandlerPredicates.path;
public class ServiceAuth {
public static void main(String[] args) throws URISyntaxException, NoSuchAlgorithmException, KeyManagementException, IOException {
AutoConfiguration config = MuonConfigBuilder.withServiceIdentifier("stream-test").build();
Muon muon = MuonBuilder.withConfig(config).build();
muon.getDiscovery().blockUntilReady();
muon.handleRequest(path("/"), request -> {
request.ok("Hello World");
});
muon.handleRequest(path("/in"))
.addRequestType(MyRequest.class)
.addResponseType(MyResponse.class)
.handler(request -> {
MyRequest myReq = request.getRequest().getPayload(MyRequest.class);
//do something with the request
request.ok(new MyResponse("Hello World"));
})
.build();
}
@Data
@AllArgsConstructor
@NoArgsConstructor
static class MyRequest {
String name;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
static class MyResponse {
String name;
}
}