在 rest 控件中设置响应代码
Set response code in rest control
我不知道如何在我的 REST 控件元素中设置响应代码。
这里是REST控件的代码。
<xe:restService id="restProfile" pathInfo="profile">
<xe:this.service>
<xe:customRestService
doGet="#{javascript:REST_PROFILE.doGet()}"
contentType="application/json"
doPost="#{javascript:REST_PROFILE.doPost(reqVar)}"
requestContentType="application/json" requestVar="reqVar">
</xe:customRestService>
</xe:this.service>
</xe:restService>
要求在某些情况下 return 代码 404,但我不知道该怎么做。
有人知道如何使用 SSJS 吗?
Domino 版本为 9.0.1
您不能 return doGet 和 doPost 的状态 404。响应 属性 状态由 customRestService 管理。 SSJS 代码只能 return JSON 数据。
您可以定义自己的 JSON 内容,例如
{
"status": "error",
"error-message": "something not found"
}
虽然并以这种方式处理错误。
作为替代方案,您可以使用 customRestService 的 serviceBean。
<xe:customRestService
contentType="application/json"
requestContentType="application/json"
serviceBean="de.leonso.demo.RestService">
</xe:customRestService>
并在 response.setStatus(status)
中设置 return 代码:
public class RestService extends CustomServiceBean {
@Override
public void renderService(CustomService service, RestServiceEngine engine) throws ServiceException {
try {
HttpServletRequest request = engine.getHttpRequest();
HttpServletResponse response = engine.getHttpResponse();
response.setHeader("Content-Type", "application/json; charset=UTF-8");
response.setContentType("application/json");
response.setHeader("Cache-Control", "no-cache");
response.setCharacterEncoding("utf-8");
String method = request.getMethod();
int status = 200;
if (method.equals("GET")) {
status = ...
} else {
...
}
response.setStatus(status);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
我不知道如何在我的 REST 控件元素中设置响应代码。
这里是REST控件的代码。
<xe:restService id="restProfile" pathInfo="profile">
<xe:this.service>
<xe:customRestService
doGet="#{javascript:REST_PROFILE.doGet()}"
contentType="application/json"
doPost="#{javascript:REST_PROFILE.doPost(reqVar)}"
requestContentType="application/json" requestVar="reqVar">
</xe:customRestService>
</xe:this.service>
</xe:restService>
要求在某些情况下 return 代码 404,但我不知道该怎么做。
有人知道如何使用 SSJS 吗?
Domino 版本为 9.0.1
您不能 return doGet 和 doPost 的状态 404。响应 属性 状态由 customRestService 管理。 SSJS 代码只能 return JSON 数据。
您可以定义自己的 JSON 内容,例如
{
"status": "error",
"error-message": "something not found"
}
虽然并以这种方式处理错误。
作为替代方案,您可以使用 customRestService 的 serviceBean。
<xe:customRestService
contentType="application/json"
requestContentType="application/json"
serviceBean="de.leonso.demo.RestService">
</xe:customRestService>
并在 response.setStatus(status)
中设置 return 代码:
public class RestService extends CustomServiceBean {
@Override
public void renderService(CustomService service, RestServiceEngine engine) throws ServiceException {
try {
HttpServletRequest request = engine.getHttpRequest();
HttpServletResponse response = engine.getHttpResponse();
response.setHeader("Content-Type", "application/json; charset=UTF-8");
response.setContentType("application/json");
response.setHeader("Cache-Control", "no-cache");
response.setCharacterEncoding("utf-8");
String method = request.getMethod();
int status = 200;
if (method.equals("GET")) {
status = ...
} else {
...
}
response.setStatus(status);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}