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

OSCHINA-MIRROR/silentbalanceyh-vertx-zero

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
d10014-zero-jsr311-sessionparamparameters.md 4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 04:28 85b9559

Zero JSR311, @SessionParam...Parameters

В системе Zero управление переменными сеанса отличается от других переменных, поскольку эта переменная не предоставляется непосредственно HTTP-запросом. Вместо этого пользователь сначала отправит некоторый запрос и сохранит данные в сеансе, а затем, когда они отправят запрос с тем же сеансом (vertx-web.session тот же), вы сможете использовать переменную сеанса в логической части вашего приложения/кода.

Примеры проектов:

  • Standalone - 6083: up-rhea

1. Исходный код

package up.god.micro.params;

import io.vertx.up.annotations.EndPoint;
import io.vertx.up.annotations.SessionData;

import javax.ws.rs.*;

@EndPoint
@Path("/api")
public class SessionParamExecutor {

    @POST
    @Path("param/session/{id}")
    @SessionData("user")
    public String saveSession(
            @PathParam("id") final String id) {
        System.out.println(id);
        return id;
    }

    @GET
    @Path("param/session")
    public String saySession(
            @SessionParam("user") final String user
    ) {
        System.out.println(user);
        return user;
    }
}

2. Консоль

......
[ ZERO ] ( 2 Event ) Конечная точка up.god.micro.params.SessionParamExecutor просканировала 2 события Event, будет подключена к системе маршрутизации.
......
[ ZERO ] ( Uri Register ) "/api/param/session" был развёрнут агентом ZeroHttpAgent, параметры = Route...
[ ZERO ] ( Uri Register ) "/api/param/session/:id" был развёрнут агентом ZeroHttpAgent, параметры = Route...
......

3. Тестирование

Текущее тестирование учебника отличается от предыдущего, потому что здесь нам нужны два тестовых случая.

3.1. Отсутствие сессии

URL: http://localhost:6083/api/param/session

Метод: GET

Ответ:

{
    "data": null
}

3.2. Два шага сессии

В этом тестовом случае нам нужно выполнить два шага, чтобы обработать ситуацию.

1 — Первый

URL: http://localhost:6083/api/param/session/lang.yu-vertx

Метод: POST

Ответ:

{
    "data": "lang.yu-vertx"
}

2 — Второй

Повторите шаг 3.1, вы обнаружите другой ответ от нуля, он отличается от тестового случая 3.1.

{
    "data": "lang.yu-vertx"
}

4. Резюме

Этот учебник описывает использование сессии в системе zero, с помощью системы JSR311 zero была определена новая аннотация для обработки переменной сессии в системе zero. Вот дополнительные аннотации, такие как:

  • io.vertx.up.annotations.SessionData

Эта аннотация предоставляет ключ сеанса в качестве атрибута для хранения данных сеанса, она будет захватывать возвращаемое значение метода и сохранять его в сеансе. Затем мы можем использовать аннотацию @SessionParam, чтобы получить значение, которое вы сохранили в предыдущем запросе.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/silentbalanceyh-vertx-zero.git
git@api.gitlife.ru:oschina-mirror/silentbalanceyh-vertx-zero.git
oschina-mirror
silentbalanceyh-vertx-zero
silentbalanceyh-vertx-zero
master