Получить атрибуты запроса в Restlet 2.0 - PullRequest
0 голосов
/ 10 июля 2010

Я использую Restlet для создания платформы RESTful.Я не использовал его раньше, но я решил использовать 2.0, потому что лучше начать с новейшей и самой лучшей технологии, верно?

Главное, что я ищу, - это способность кого-то поставитьв URL-адресе, подобном http://mysite/New%20York/3, и служба должна ответить чем-то вроде [New York,New York,New York], поэтому мне нужно передать атрибуты запроса.Используя этот пост для Restlet 1.1 (потому что я не могу найти любую документацию для этого на сайте Restlet), я связал свое приложение так:

router.attach("{text}/{count}", RepeaterResource.class);

Новый способ сделать это, по-видимому, в методе UniformResource#doInit(), поэтому мой выглядит так (без проверки ошибок):

@Override
public void doInit()
{
    magicText = "" + getRequestAttributes().get("text");
    repeatAmount = Integer.parseInt("" + getRequestAttributes().get("count"));
}

Проблема в том, что Map<String, Object> вернулся из getRequestAttributes() всегда полностью пусто!Это кажется довольно странным.Я неправильно подключил маршрут?

Конечно, я мог бы просто использовать getQuery() и разобрать его сам, но это определенно неправильный способ сделать это, и кажется, что должно быть легкоспособ сделать это (аналогично тому, как работали предыдущие версии).

Ответы [ 2 ]

2 голосов
/ 15 июля 2010

Кажется, моя проблема в том, что вложения маршрутизатора должны начинаться с символа /.Я должен прикрепить вот так:

router.attach("/{text}/{count}", RepeaterResource.class);

Я не могу найти это документированное поведение, и оно кажется довольно странным, но оно определенно решило мои проблемы.

0 голосов
/ 11 июля 2010

Вы можете сделать это с 2.0 так же, как с 1.1.

См. Учебное пособие, часть 11: http://www.restlet.org/documentation/2.0/tutorial#part11

Великолепный рестлет, кстати.

...