0
点赞
收藏
分享

微信扫一扫

第五章 修改实现(IMPL)类


文章目录

  • ​​第五章 修改实现(IMPL)类​​
  • ​​初始方法定义​​
  • ​​实现方法​​
  • ​​暴露服务器错误的详细信息​​
  • ​​修改错误响应​​

第五章 修改实现(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​​ 调用描述的副本。在实施中:

  • 返回适当的值。
  • 检查请求消息。为此,请使用实现类的​​%CheckAccepts()​​​、​​%GetContentType()​​​ 和​​%GetHeader()​​​ 方法。这里提到的所有方法都是从​​%REST.Impl​​ 继承的,它是你的实现类的超类。
  • 根据需要设置​​HTTP​​​ 状态代码以指示,例如,资源是否可用。为此,请使用​​%SetStatusCode()​​​ 方法。有关​​HTTP​​ 状态代码的信息,请参阅 http://www.faqs.org/rfcs/rfc2068.html。
  • 设置​​HTTP​​​ 响应标头。为此,请使用​​%SetHeader()​​​、​​%SetHeaderIfEmpty()​​​ 和​​%DeleteHeader()​​ 方法。
  • 如果需要,报告错误。为此,请使用​​%LogError()​​ 方法。

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

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

Parameter ExposeServerExceptions = 1;

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

修改错误响应

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


举报

相关推荐

第五章

五,Eureka 第五章

第五章 Tomcat

第五章总结

MySQL 第五章

第五章 列表

0 条评论