文章目录

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

第五章 修改实现(IMPL)类相关推荐

  1. [深入理解Android卷一全文-第五章]深入理解常见类

    由于<深入理解Android 卷一>和<深入理解Android卷二>不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在CSDN博客中全文转发这两本书的全部内容. ...

  2. C语言基础教程读书笔记5.2.(第五章函数和存储类2)

    4.作用域规则 标示符只能在说明或对他定义它的函数体或分程序内饰可见的,而在该函数体或分程序外则是不可见的. 举个例子: # include <stdio.h> int main() { ...

  3. Java(第十五章)

    第十五章 一.字符串类String 1.String是一个类,位于java.lang包中 2.创建一个字符串对象的2种方式: String 变量名="值"; String 对象名= ...

  4. 自适应滤波器在matlab仿真的程序_电气信息类专业课程之matlab系统仿真 第五章 BPSK通信系统(3)...

    继续讲解! 上一篇文章提出了那么多问题, 不知道大家是否能回答上来啊? 如果回答不了, 有没有去问问度娘呢? 程序写完了,回想了一下辅导2017届学生毕业设计的过程,那是真累.我要求他们在现有程序基础 ...

  5. 计算机改计数器的方法,第五章定时器计数器(修改)-计算机原理及应用资源共享课.ppt...

    第五章定时器计数器(修改)-计算机原理及应用资源共享课.ppt 1 第5章 MCS-51单片机定时器/计数器 主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用 2 (1 ...

  6. 【JAVA SE】第五章 数组、多维数组和Arrays类

    第五章 数组.多维数组和Arrays类 文章目录 第五章 数组.多维数组和Arrays类 一.数组 1.概述 2.声明数组变量 3.创建数组 4.For-Each 循环 二.多维数组 1.概述 2.多 ...

  7. Java核心技术卷一 -第五章:类的强制类型转换与instanceof操作符

    系列文章目录 Java核心技术卷一 -第一章:java"白皮书"的关键术语 Java核心技术卷一 -第三章:数据类型 Java核心技术卷一 -第三章:变量与常量 Java核心技术卷 ...

  8. Java核心技术卷一 -第五章:枚举类再认识

    系列文章目录 Java核心技术卷一 -第一章:java"白皮书"的关键术语 Java核心技术卷一 -第三章:数据类型 Java核心技术卷一 -第三章:变量与常量 Java核心技术卷 ...

  9. 华南农业大学C语言程序设计课后习题(第五章)已修改

    华南农业大学C语言程序设计课后习题(第五章) 18046 字母分类统计 时间限制:1000MS 内存限制:65535K 提交次数:0 通过次数:0 题型: 编程题 语言: G++;GCC;VC Des ...

  10. [转]Windows Shell编程 第十五章【来源:http://blog.csdn.net/wangqiulin123456/article/details/7988016】...

    第十五章 SHELL扩展 谈到Windows Shell编程,Shell扩展是最重要的科目之一,绝大多数商业应用的最酷特征的都是通过Shell扩展实现的,而且有许多显著的系统特征实际都是插入了扩展代码 ...

最新文章

  1. 为什么 Python被Google选为TensorFlow的开发语言呢?使用 Python比C++语言进行机器学习有什么优势?
  2. k8s 多租户_k8s使用rbac实现多租户
  3. 图片动画效果html5,8个实用炫酷的HTML5图片动画应用
  4. 大文件上传服务器、支持超大文件HTTP断点续传实践总结
  5. Integer.ParseInt()异常
  6. 8.卷1(套接字联网API)---基本UDP套接字编程
  7. linux SO文件
  8. 【XSY2731】Div 数论 杜教筛 莫比乌斯反演
  9. C#调用谷歌翻译API
  10. 计算机中.dll文件检查,在电脑中查看并打开dll文件类型的具体方法
  11. mac 修改hosts不生效问题
  12. Android 最常用的设计模式六 安卓源码分析—责任链模式
  13. 如何通过软件编辑自己想要的点阵图片
  14. Processing绘制星空-2-绘制流星
  15. resultful接口开发
  16. 求主对角线上各元素之和(C语言)
  17. VUE调用WEB3.0实现代币查询,批量转账功能
  18. HUST-多媒体基础PPT目录
  19. 计算机主板没电默认时间,电脑时间不能自动更新了怎么办?每次开机都要重新设置时间...
  20. Java毕设项目奥利给共享自习室系统(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. 谷歌搜索技巧大全,Google高级搜索语法指令都在这里了!
  2. 机房巨佬的随机名称生成器
  3. 拆机芯片DIY一个STM32F401CCU6核心板
  4. Axure获取焦点和触发事件
  5. 向量与矩阵的简单运算
  6. word从第三页插入页码
  7. 基于有道API的命令行词典(golang版)
  8. 魔咒词典 HDU - 1880 (字符串hash 单hash转int或者 双hash )
  9. 参数显著性检验的p值小于显著性水平不等于其具有经济学意义
  10. java金额元与万元转换_java中金额元转万元工具类代码实例