Endopint zum abfragen der Offsets der zugeordneten Partitionen
[demos/kafka/training] / src / main / java / de / juplo / kafka / DriverController.java
1 package de.juplo.kafka;
2
3 import lombok.RequiredArgsConstructor;
4 import org.springframework.http.ResponseEntity;
5 import org.springframework.web.bind.annotation.GetMapping;
6 import org.springframework.web.bind.annotation.PathVariable;
7 import org.springframework.web.bind.annotation.PostMapping;
8 import org.springframework.web.bind.annotation.RestController;
9
10 import java.util.Map;
11 import java.util.Optional;
12 import java.util.concurrent.ExecutionException;
13
14
15 @RestController
16 @RequiredArgsConstructor
17 public class DriverController
18 {
19   private final EndlessConsumer consumer;
20
21
22   @PostMapping("start")
23   public void start()
24   {
25     consumer.start();
26   }
27
28   @PostMapping("stop")
29   public void stop() throws ExecutionException, InterruptedException
30   {
31     consumer.stop();
32   }
33
34
35   @GetMapping("seen")
36   public Map<Integer, Map<String, Long>> seen()
37   {
38     return consumer.getSeen();
39   }
40
41   @GetMapping("offset/{partition}")
42   public ResponseEntity<Long> offset(@PathVariable("partition") Integer partition)
43   {
44     return ResponseEntity.of(consumer.getOffset(partition));
45   }
46 }