Как поддерживать параметры с помощью REST Play Mini?

Я использую Akka и Play Mini (это просто слой REST поверх Netty). Я использую его из Java. Синтаксис прост, описан в их файле readme на GitHub:

    @URL("/coco/*/name/*")

Это работает нормально, но означает, что все URL-адреса должны быть только длинными путями. Я нашел эту ветку, в которой некоторые люди утверждают, что параметры запрещены, а другие говорят, что они абсолютно нет. Я бы хотел, чтобы игровые документы просто заявили свою позицию, но, увы. Я ищу возможность поддерживать URL-адрес в формате:

    /search/query=dogs

Возможно, в обычных документах Play это описано. Буду искать..


person Rob    schedule 30.04.2012    source источник
comment
Как насчет этого шаблона.. stackoverflow.com/search?q=sw   -  person Srinivas Reddy Thatiparthy    schedule 30.04.2012
comment
Да, этот формат такой же, как у меня, но просто другое имя параметра?   -  person Rob    schedule 01.05.2012


Ответы (1)


Возможно, это поможет другим людям.

@URL("/hello/*\\?*")
public static Result show() {
    Map<String, String[]> queryString = request().queryString();

    Map<String, String> data = new HashMap<String, String>();
    for (String key : queryString.keySet()) {
        for (String value : queryString.get(key)) {
            data.put(key, value);
        }
    }
    response().setContentType("text/html");
    return ok(data.toString());
}

Если вы тестируете с помощью: curl "http://localhost:9000/hello/test?param1=0&param2=yes"

Результат будет:

test{param1=0, param2=yes}
person ThiS    schedule 04.12.2012