Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a6d3851bb3 |
@@ -8,7 +8,7 @@ repositories {
|
|||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceCompatibility = 8
|
sourceCompatibility = 10
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compileOnly 'javax.servlet:javax.servlet-api:4.0.1'
|
compileOnly 'javax.servlet:javax.servlet-api:4.0.1'
|
||||||
|
|||||||
42
src/main/java/api/Orders.java
Normal file
42
src/main/java/api/Orders.java
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
package api;
|
||||||
|
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
import javax.servlet.annotation.WebServlet;
|
||||||
|
import javax.servlet.http.HttpServlet;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@WebServlet("/api/orders")
|
||||||
|
public class Orders extends HttpServlet {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
private int lastOrderId = 0;
|
||||||
|
private Pattern orderPattern = Pattern.compile(".*\"orderNumber\":\\s*\"(.*)\".*");
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||||
|
resp.getWriter().format("%d", lastOrderId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||||
|
resp.setContentType("application/json");
|
||||||
|
String order = req.getReader().lines().collect(Collectors.joining(" "));
|
||||||
|
int orderId = lastOrderId++;
|
||||||
|
Matcher matcher = orderPattern.matcher(order);
|
||||||
|
boolean matches = matcher.matches();
|
||||||
|
|
||||||
|
if (matches && matcher.groupCount() > 0) {
|
||||||
|
String orderNumber = matcher.group(1);
|
||||||
|
System.out.format("request data: %s, orderNumber: %s\n", order, orderNumber);
|
||||||
|
resp.getWriter().printf("{\"id\": %d, \"orderNumber\": \"%s\"}", orderId, orderNumber);
|
||||||
|
} else {
|
||||||
|
resp.getWriter().print("\"Invalid request\"");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user