Тип ответа Restlet - PullRequest
       18

Тип ответа Restlet

2 голосов
/ 12 марта 2012

Как я могу вернуть ответ Restlet в нужном формате? Я использую метод:

@Get ("json")
public Address sendResponse(){
    Address add = getAddress();
    return add;
}

Прямо сейчас я должен явным образом преобразовать объект java в строку json как ответ браузеру. Разве это не позаботится о самой платформе Restlet?

Успешная реализация Spring MVC может это сделать. Я тоже ищу похожую реализацию в рестлете.

Ответы [ 2 ]

10 голосов
/ 13 марта 2012

На самом деле, есть два способа сделать это с помощью Restlet:

  • явный, использующий представления JSON. JSONRepresentation, если вы используете объекты из org.json или JacksonRepresentation, если вы хотите отобразить JSON / Object. Ниже приведен пример:

    @Get ("json")
    public Representation sendResponse(){
        Address add = getAddress();
        return new JacksonRepresentation<Address>(address);
    }
    
  • неявный, использующий конвертер. В данном случае это код, который вы дали. Вы должны иметь в своем classpath соответствующий конвертер, такой как тот, который предоставлен расширением org.restlet.ext.jackson. Он обнаружит необходимость возврата содержимого JSON и неявно преобразует ваш объект Address в содержимое JSON.

Только для подсказки, носитель json, указанный в аннотации GET, указывает Restlet использовать связанный метод для обработки запроса, когда application / json определено для connectg (обсуждение содержимого) с заголовком accept.

Надеюсь, это поможет вам. Thierry

0 голосов
/ 12 марта 2012

Попробуйте установить тип ответа application/json вместо json.Обычно вам нужно указать правильный тип MIME.Как вы говорите, если вы правильно установите тип MIME, другие платформы будут выполнять преобразование автоматически.

...