美文网首页收藏js css html
第五章 修改实现(IMPL)类

第五章 修改实现(IMPL)类

作者: Cache技术分享 | 来源:发表于2022-07-24 08:44 被阅读0次

第五章 修改实现(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() 方法返回错误响应。

相关文章

  • 第五章 修改实现(IMPL)类

    第五章 修改实现(IMPL)类 本章讨论如何修改 REST 服务的实现类。 初始方法定义 实现类最初包含存根方法,...

  • 2019-05-23

    记得Impl实现类里加@Service...

  • 学习笔记171009

    java开发规范 接口和实现类 接口定义在类名前加I;例如:ICacheService 实现类在类名后加Impl;...

  • Realm 移动 轻量级数据库框架

    首先 大家对SQLiteOpenHelper 这个类并不陌生 ,伴随着 你需要有DAO类 包括IMPL实现类!...

  • 链式编程思想

    写一个计算的类,用Block实现,并返回Block import "CaculatorMaker.h" @impl...

  • Dart语言的继承

    类的定义 在Dart中定义一个类的方法如下 Dart类的三种继承方式 父类继承 extends 实现接口 impl...

  • Activiti工作流Day01-Activiti简介

    简介 所有包名中包含 .impl. 的类都是内部实现类,都是不保证稳定的. 不过,如果用户指南把那些类列为配置项....

  • OC instance 对象本质二

    检索Student_IMPL {查看Student结构体实现如下: struct NSObject_IMPL NS...

  • mybatis笔记 - 09

    MVC版项目开发-接口代理模式 登陆模拟 使用接口代理模式 删除impl包及其下实现类 依靠mybatis帮...

  • 桥接模式

    桥接模式 定义 将抽象和实现解耦,使得两者可以独立变化。有点抽象,大家先继续往下看吧。 通用类图 类说明 Impl...

网友评论

    本文标题:第五章 修改实现(IMPL)类

    本文链接:https://www.haomeiwen.com/subject/glpiirtx.html