1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/buru-sardine

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Сардинка

Проект находится в процессе разработки и ещё не завершён, следите за новыми обновлениями...

Лёгкий и высокопроизводительный микросервисный фреймворк, данный проект представляет собой реализацию Sinatra с использованием Netty5 и Java8.

Сардинка

Сардины — важнейшие морские экономически значимые виды рыб. Они относятся к отряду сельдей семейства сельдей, имеют вытянутую форму, боковое сужение и шипастый брюшной край. Маленькие особи достигают двух дюймов в длину, а большие могут достигать одного фута, живут большими стаями и совершают прибрежные миграции.

Краткое описание

Лёгкий микросервисный фреймворк на Java

  • Java8: функциональное программирование, лямбда-выражения, потоковая обработка данных
  • Netty5: событийно-ориентированное программирование, асинхронность, высокая производительность и надёжность
  • Минимальный набор: всего Yöntem 100к+ строк кода, зависит только от Netty

Один строчкой запустите HTTP-сервер

public static void main(String[] args) {
    get("/", () -> "hello sardine.");
}

Готово! Теперь откройте ваш браузер:

http://localhost:9527/

Начальный этап


Зависимости

<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."); } }


### Роутинг

Роутинг состоит из трех частей:

- **Действие**: одно из действий HTTP (GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE, CONNECT, PATCH)
- **Путь**: путь запроса HTTP (/home, /books/:id, /books/:author)
- **Функция**: принимает HTTP-request и создает HTTP-response (() -> {}, (request, response) -> {})

Кроме того, можно использовать:

- **Условия**: условные функции ((request) -> {})
- **Типы**: типы HTTP-акцепта

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 методы

### Параметры

### Именованные параметры

### Диктаторские параметры

### Запросные параметры

### Условия

Функции условий

get("/hello", request -> "127.0.0.1".equals(request.ip()), (request, response) -> { return "hello sardine."; });


### Запрос

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.bodyAsBytes(); request.bodyLength();


### Ответ

response.status( Yöntem 404 ); response.header("foo", "bar"); response.cookie("foo", "bar"); response.contentType("application/json");

response.body(); response.body("вы в порядке?");

response.redirect("/вход"); response.file("/hello.html");


### Остановка
```java
halt();
halt(403);
halt("ты в порядке?");
halt(503, "я тебя понимаю!");
``

### Фильтры

### Перенаправление

### Перезапись

### Исключения

### Статические активы
```java
staticFileLocation("/resources");

externalStaticFileLocation("/var/www/resources");

Преобразование Ответа

json

MVC

GZIP

Логирование

Мониторинг

Примеры


1. Привет Sardine

Наиболее простой вариант:

import static sardine.Sardine.*;

public class HelloSardine {
    public static void main(String[] args) {
        get("/", () -> "привет Sardine.");
    }
}

Запустите: http://localhost:9527/

С использованием синтаксического сахара Java 8:

import static sardine.Sardine.*;

public class HelloSardine {
    public static void main(String[] args) {
        get("/", new HelloSardine()::hello);
    }

    public String hello() { return "привет Sardine"; }
}

Запустите: http://localhost:9527/

import static sardine.Sardine.*;

public class HelloSardine {
    public static void main(String[] args) {
        get("/", HelloSardine::hello);
    }

    public static String hello() { return "привет Sardine"; }
}

Запустите: http://localhost:9527/

Пример

Проект Demo

Реальные примеры

Busuanzi: http://busuanzi.ibruce.info

Проверка производительности

Ссылки

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/buru-sardine.git
git@api.gitlife.ru:oschina-mirror/buru-sardine.git
oschina-mirror
buru-sardine
buru-sardine
master