use of io.javalin.Javalin in project training by java-gcp-220228.
the class Driver method main.
public static void main(String[] args) {
Javalin app = Javalin.create();
// This will execute before every single request
app.before((ctx) -> {
logger.info(ctx.method() + " request received for " + ctx.path());
});
mapControllers(app, new HelloWorldController(), new StudentController(), new ExceptionController());
// port 8080 by default
app.start();
}
use of io.javalin.Javalin in project codex by apycazo.
the class OkHttpClientDemo method main.
public static void main(String[] args) {
int port = 9090;
String url = "http://localhost:" + port;
Javalin server = createTestServer(port);
OkHttpClient client = new OkHttpClient();
sendGetRequest(client, url);
sendPostRequest(client, url);
server.stop();
}
use of io.javalin.Javalin in project DV_Projekt by marc-staiger.
the class Main method main.
public static void main(String[] args) {
// --- set up web server ---//
int port = 5000;
Javalin app = Javalin.create(config -> config.addStaticFiles(staticFiles -> {
// change to host files on a subpath, like '/assets'
staticFiles.hostedPath = "/";
// the directory where your files are located
staticFiles.directory = "www";
// Location.CLASSPATH (jar) or Location.EXTERNAL (file system)
staticFiles.location = Location.EXTERNAL;
})).start(port);
// --- set up routes ---//
app.get("/", ctx -> ctx.redirect("/index.html"));
app.get("/hello", ctx -> ctx.result("Hello World"));
app.get("/getdata", ctx -> {
ctx.json(Map.ofEntries(Map.entry("value", "some data"), Map.entry("timestamp", new Date())));
});
app.post("/postdata", ctx -> {
String body = ctx.body();
Map data = (Map) JSON.parse(body);
System.out.println(data.get("value"));
});
}
use of io.javalin.Javalin in project cwms-radar-api by USACE.
the class ApiServlet method init.
@Override
public void init() throws ServletException {
String context = this.getServletContext().getContextPath();
PolicyFactory sanitizer = new HtmlPolicyBuilder().disallowElements("<script>").toFactory();
ObjectMapper om = new ObjectMapper();
JavalinValidation.register(UnitSystem.class, UnitSystem::systemFor);
om.setPropertyNamingStrategy(PropertyNamingStrategies.KEBAB_CASE);
// Needed in Java 8 to properly format java.time classes
om.registerModule(new JavaTimeModule());
AccessManager accessManager = buildAccessManager();
javalin = Javalin.createStandalone(config -> {
config.defaultContentType = "application/json";
config.contextPath = context;
config.registerPlugin(new OpenApiPlugin(getOpenApiOptions()));
config.enableDevLogging();
config.requestLogger((ctx, ms) -> logger.finest(ctx.toString()));
config.accessManager(accessManager);
}).attribute("PolicyFactory", sanitizer).attribute("ObjectMapper", om).before(ctx -> {
ctx.attribute("sanitizer", sanitizer);
ctx.header("X-Content-Type-Options", "nosniff");
ctx.header("X-Frame-Options", "SAMEORIGIN");
ctx.header("X-XSS-Protection", "1; mode=block");
}).exception(FormattingException.class, (fe, ctx) -> {
final RadarError re = new RadarError("Formatting error");
if (fe.getCause() instanceof IOException) {
ctx.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
} else {
ctx.status(HttpServletResponse.SC_NOT_IMPLEMENTED);
}
logger.log(Level.SEVERE, fe, () -> re + "for request: " + ctx.fullUrl());
ctx.json(re);
}).exception(UnsupportedOperationException.class, (e, ctx) -> {
final RadarError re = RadarError.notImplemented();
logger.log(Level.WARNING, e, () -> re + "for request: " + ctx.fullUrl());
ctx.status(HttpServletResponse.SC_NOT_IMPLEMENTED).json(re);
}).exception(BadRequestResponse.class, (e, ctx) -> {
RadarError re = new RadarError("Bad Request", e.getDetails());
logger.log(Level.INFO, re.toString(), e);
ctx.status(e.getStatus()).json(re);
}).exception(IllegalArgumentException.class, (e, ctx) -> {
RadarError re = new RadarError("Bad Request");
logger.log(Level.INFO, re.toString(), e);
ctx.status(HttpServletResponse.SC_BAD_REQUEST).json(re);
}).exception(NotFoundException.class, (e, ctx) -> {
RadarError re = new RadarError("Not Found.");
logger.log(Level.INFO, re.toString(), e);
ctx.status(HttpServletResponse.SC_NOT_FOUND).json(re);
}).exception(FieldException.class, (e, ctx) -> {
RadarError re = new RadarError(e.getMessage(), e.getDetails(), true);
ctx.status(HttpServletResponse.SC_BAD_REQUEST).json(re);
}).exception(JsonFieldsException.class, (e, ctx) -> {
RadarError re = new RadarError(e.getMessage(), e.getDetails(), true);
ctx.status(HttpServletResponse.SC_BAD_REQUEST).json(re);
}).exception(Exception.class, (e, ctx) -> {
RadarError errResponse = new RadarError("System Error");
logger.log(Level.WARNING, String.format("error on request[%s]: %s", errResponse.getIncidentIdentifier(), ctx.req.getRequestURI()), e);
ctx.status(500);
ctx.contentType(ContentType.APPLICATION_JSON.toString());
ctx.json(errResponse);
}).routes(this::configureRoutes).javalinServlet();
}
use of io.javalin.Javalin in project 2203Java by adamranieri.
the class WebApp method main.
public static void main(String[] args) {
Javalin app = applicationContext.getBean("ProductionApp", Javalin.class);
// CREATE
app.post("/books", context -> {
String body = context.body();
// JSON fields need to match what the fields are in the class
Book book = gson.fromJson(body, Book.class);
bookService.registerBook(book);
// 201 is the status code for succesffully creating something
context.status(201);
String bookJSON = gson.toJson(book);
context.result(bookJSON);
});
// //READ
app.get("/books", context -> {
String title = context.queryParam("title");
if (title == null) {
List<Book> books = bookService.libraryCatalogue();
String bookJSON = gson.toJson(books);
context.result(bookJSON);
} else {
List<Book> books = bookService.getBooksByTitle(title);
String bookJSON = gson.toJson(books);
context.result(bookJSON);
}
});
app.get("/books/{id}", context -> {
int id = Integer.parseInt(context.pathParam("id"));
try {
String bookJSON = gson.toJson(bookService.retrieveBookById(id));
context.result(bookJSON);
} catch (ResourceNotFound e) {
context.status(404);
context.result("The book id " + id + "was not found");
}
});
//
// //UPDATE
app.put("/books/{id}", context -> {
int id = Integer.parseInt(context.pathParam("id"));
String body = context.body();
Book book = gson.fromJson(body, Book.class);
// the id in the uri should take precedence
book.setId(id);
bookService.replaceBook(book);
context.result("Book replaced");
});
app.patch("/books/{id}/checkout", context -> {
try {
int id = Integer.parseInt(context.pathParam("id"));
bookService.checkOut(id);
context.status(204);
} catch (ResourceNotFound e) {
context.status(404);
context.result(e.getMessage());
}
});
app.patch("/books/{id}/checkin", context -> {
int id = Integer.parseInt(context.pathParam("id"));
Book book = bookService.retrieveBookById(id);
bookService.checkIn(book);
context.result("Book checked in");
});
//
// //DELETE
app.delete("/books/{id}", context -> {
int id = Integer.parseInt(context.pathParam("id"));
boolean result = bookService.destroyBookById(id);
if (result) {
context.status(204);
} else {
context.status(500);
}
});
app.start(7000);
}
Aggregations