Пользовательский ответ JSON в Restlet - PullRequest
0 голосов
/ 06 ноября 2019

Мое приложение имеет ресурс REST, который возвращает Application объект

public class JeeApplicationsServerResource extends BaseServerResource
    implements ApplicationsResource {
  @Override
  public Application createApp(Application application) {
    if(!exists(application)) {
        return createApp(); // returns 
    } else {
        setStatus(Status.CLIENT_ERROR_BAD_REQUEST, appName + " already exists"); // <-- this is the issue
        return null;
    }
  }
}

Проблема заключается в ответе, который должен возвращать этот ресурс, если ошибка 400 должна быть:

{
  "response" : {
     "error" : "alpha already exists", 
     "code" : 400
  }
}

А не это:

{
        "org.restlet.engine.application.StatusInfo": {
            "code": 400,
            "description": "alpha already exists",
            "homeRef": "/",
            "reasonPhrase": "Bad Request",
            "uri": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1"
        }
    }

Есть ли способ в Restlet сделать это, когда тип возвращаемых ресурсов не Representation?

...