Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mikigal/yunoframework
Simple web framework with built-in HTTP server
https://github.com/mikigal/yunoframework
http http-server java mvc rest-api
Last synced: 2 days ago
JSON representation
Simple web framework with built-in HTTP server
- Host: GitHub
- URL: https://github.com/mikigal/yunoframework
- Owner: mikigal
- Created: 2021-04-26T16:36:44.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-05-01T20:18:54.000Z (almost 4 years ago)
- Last Synced: 2024-12-12T12:45:57.643Z (about 2 months ago)
- Topics: http, http-server, java, mvc, rest-api
- Language: Java
- Homepage:
- Size: 138 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
# YunoFramework
Simple web framework with built-in HTTP server## Features
- Built-in NIO based HTTP server
- Easy to use API
- Routing
- Middleware## Example
```java
public class TestApplication {public static void main(String[] args) {
Yuno yuno = Yuno.builder()
.threads(4) // How many threads will use NIO server?
.maxRequestSize(1024 * 1024 * 20) // Set maximum request size to 20MB
.build();// Register middleware with priority 0.
// Middlewares will be called from lowest to highest priority
yuno.middleware(MyHandlers::middle, 0);
yuno.get("/", MyHandlers::root); // Register route with method GET at /
yuno.listen(":8080"); // Let's start Yuno!
}
}public class MyHandlers {
// Middleware
public static void middle(Request request, Response response) throws Exception {
System.out.println("Called middleware");
request.putLocal("foo", "bar"); // Put some data to locals, we can access it later
}// Endpoint
public static void root(Request request, Response response) throws Exception {
String name = request.param("name"); // Get value from "name" parameter (from URL)
String accept = request.header("Accept"); // Get value from "Accept" header
String foo = request.local("foo"); // Get value from "foo", middleware put it there
if (response.header("Content-Type").equals("application/x-www-form-urlencoded")) {
// Let's get data from request's body
Map body = (Map) request.body();
System.out.println(body);
}
if (name == null || !name.equals("mikigal")) {
response.setStatus(HttpStatus.BAD_REQUEST); // Set response status to 400
response.setHeader("Foo", "Bar"); // Set header "Foo" to "Bar"
response.close(); // Let's tell client to close connection, instead of stay with keep-alive
return;
}
response.html("Hello!
"); // Send HTML code
response.json(new MyObject("foo", "bar")); // Send serialized MyObjects as JSON
response.file(new File("/Users/mikigal/Desktop/image.png")); // Send file
response.binary(someBytesInArray, "application/octet-stream"); // Send byte array with selected Content-Type
response.redirect("/example", HttpStatus.MOVED_PERMANENTLY); // Redirect to /example
}
}
```