收藏js css html

第五章 修改实现(IMPL)类

2022-07-24  本文已影响0人  Cache技术分享

第五章 修改实现(IMPL)类

本章讨论如何修改 REST 服务的实现类。

初始方法定义

实现类最初包含存根方法,如下例所示:

/// Returns all pets from the system that the user has access to<br/>
/// The method arguments hold values for:<br/>
///     tags, tags to filter by<br/>
///     limit, maximum number of results to return<br/>
ClassMethod findPets(tags As %ListOfDataTypes(ELEMENTTYPE="%String"), limit As %Integer) As %Stream.Object
{
    //(Place business logic here)
    //Do ..%SetStatusCode(<HTTP_status_code>)
    //Do ..%SetHeader(<name>,<value>)
    //Quit (Place response here) ; response may be a string, stream or dynamic object
}

在每种情况下,这些存根方法都具有遵循 REST 服务规范定义的契约的签名。

实现方法

对于实现类中的每个方法,根据使用它的 REST 调用编辑方法定义(特别是实现)。请注意,该方法前面有一个注释,该注释是相应 REST 调用描述的副本。在实施中:

暴露服务器错误的详细信息

默认情况下,如果 REST 服务遇到内部错误,则不会向客户端报告错误的详细信息。要更改这一点,请将以下内容添加到实现类,然后重新编译它:

Parameter ExposeServerExceptions = 1;

请注意,默认的 %ReportRESTError() 方法会检查此参数。如果您覆盖该方法(参见下一个标题),您可以选择方法是否使用此参数。

修改错误响应

如果需要以非默认方式格式化错误响应,请覆盖实现类中的 %ReportRESTError() 方法。在方法中,使用 %WriteResponse() 方法返回错误响应。

上一篇 下一篇

猜你喜欢

热点阅读