#Sardine
整个项目未完成,尚处于开发中,敬请期待。。。
轻量级高性能微服务框架,本项目是 Netty5+Java8 的 Sinatra 实现。
沙丁鱼,世界重要海洋经济鱼类。硬骨鱼纲鲱形目鲱科,形态延长,侧扁,腹部具棱鳞。小者二寸,大者尺许,密集群息,沿岸洄游。
###超轻量级的Java 微服务框架
###一行代码启动一个HTTP 服务
public static void main(String[] args) {
get("/", () -> "hello sardine.");
}
搞定! 现在,打开您的浏览器:
###依赖
<dependency>
<groupId>sardine</groupId>
<artifactId>sardine-all</artifactId>
<version>${sardine-version}</version>
</dependency>
###启动
import static sardine.Sardine.*;
public class SardineServerTest {
public static void main(String[] args) {
port(9527);
get("/", () -> "hello sardine.");
}
}
###Route
Route 由三部分组成:
此外,还可以有:
get("/books/:author", (request, response) -> {
return "hello sardine";
});
post("/book", (request, response) -> {
return "ok";
});
put("/books/:id", (request, response) -> {
return "updated";
});
delete("/books/:id", (request, response) -> {
return "deleted";
});
// TODO restful verb 介绍
###Parameters
###Named parameters
###Wildcards parameters
###Query parameters
###条件Condition
条件函数
get("/hello", request -> "127.0.0.1".equals(request.ip()), (request, response) -> {
return "hello sardine.";
});
###Request
request.host();
request.port();
request.method();
request.path();
request.scheme();
request.contentType();
request.accept();
request.ajax();
request.headers();
request.headers("foo");
request.cookies();
request.cookies("name");
request.params();
request.params("foo");
request.paramsOptional("foo")
request.paramsOrElse("foo")
request.splats()
request.splatsAsList()
request.splatsFirst()
request.splatsLast()
request.queryParams();
request.queryParams("foo");
request.multiQueryParams("foo");
request.body();
request.bodyAsByte();
request.bodyLength();
###Response
response.status(404);
response.header("foo", "bar");
response.cookie("foo", "bar");
response.contentType("application/json");
response.body();
response.body("are you ok ?");
response.redirect("/login");
response.file("/hello.html");
###Cookie
###Halt
halt();
halt(403);
halt("a u ok?");
halt(503, "i got u!");
###Filter
###Redirect
###Rewrite
###Exception
###Static assets
staticFileLocation("/resources");
externalStaticFileLocation("/var/www/resources");
###ResponseTransformer json
###MVC
###Gzip
###日志
###监控
###1、HelloSardine
最简版:
import static sardine.Sardine.*;
public class HelloSardine {
public static void main(String[] args) {
get("/", () -> "hello sardine.");
}
}
Java8 语法糖版:
import static sardine.Sardine.*;
public class HelloSardine {
public static void main(String[] args) {
get("/", new HelloSardine()::hello);
}
public String hello() { return "hello sardine"; }
}
import static sardine.Sardine.*;
public class HelloSardine {
public static void main(String[] args) {
get("/", HelloSardine::hello);
}
public static String hello() { return "hello sardine"; }
}
###Demo工程
###真实案例
不蒜子:http://busuanzi.ibruce.info
ab
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型