commit d99f2606f65e0b2ebc62a9013e331776cad651b5
parent 2a4db4eb31d3de959b3b9131338587e3362b35b5
Author: Kebigon <git@kebigon.xyz>
Date: Tue, 1 Jan 2019 19:10:45 +0900
Use POST requests
Diffstat:
2 files changed, 32 insertions(+), 15 deletions(-)
diff --git a/src/main/java/fr/lrgn/yuzurss/FeedController.java b/src/main/java/fr/lrgn/yuzurss/FeedController.java
@@ -4,8 +4,8 @@ import java.net.URI;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -16,20 +16,13 @@ import reactor.core.publisher.Flux;
@CrossOrigin
public class FeedController
{
- private static final int DEFAULT_LIMIT = 10;
-
@Autowired
private FeedClient client;
- @GetMapping("/{urls}")
- Flux<FeedEntry> getFeeds(@PathVariable String[] urls)
- {
- return getFeeds(urls, DEFAULT_LIMIT);
- }
-
- @GetMapping("/{urls}/{limit}")
- Flux<FeedEntry> getFeeds(@PathVariable String[] urls, @PathVariable int limit)
+ @PostMapping()
+ public Flux<FeedEntry> getFeeds(@RequestBody FeedRequestBody body)
{
- return Flux.fromArray(urls).flatMap(url -> client.getFeed(URI.create(url))).sort(FeedEntry.COMPARATOR).take(limit);
+ return Flux.fromIterable(body.getUrls()).flatMap(url -> client.getFeed(URI.create(url))).sort(FeedEntry.COMPARATOR)
+ .take(body.getLimit());
}
-}
-\ No newline at end of file
+}
diff --git a/src/main/java/fr/lrgn/yuzurss/FeedRequestBody.java b/src/main/java/fr/lrgn/yuzurss/FeedRequestBody.java
@@ -0,0 +1,25 @@
+package fr.lrgn.yuzurss;
+
+import java.util.List;
+
+public class FeedRequestBody
+{
+ private final List<String> urls;
+ private final int limit;
+
+ public FeedRequestBody(List<String> urls, int limit)
+ {
+ this.urls = urls;
+ this.limit = limit;
+ }
+
+ public List<String> getUrls()
+ {
+ return urls;
+ }
+
+ public int getLimit()
+ {
+ return limit;
+ }
+}