resulful规范_resultful风格接口

resultful风格接口

一、产生背景

网络应用程序,越来越流行前端和后端的分离设计。当前的发展趋势是前端的设计层出不穷。比如:各种型号的手机、平板灯其他设计。因为必须要一种统一的机制方便不同的前端和后端进行通信。这就导致了API结构的流行。其中Restful API是目前比较成熟的一套互联网应用程序的API设计理论。

二、简介

Restfule风格是一种软件架构风格,而不是标准,只是提供了一种设计原则和约束条件。主要适用于客户端和服务器端交互的软件。是基于http协议实现。目的是为了提高系统的可伸缩性,降低应用之间的耦合度,方便框架分布式处理程序。基于这个风格的软件可更加的简单、更有层次,更易于实现缓存的机制。

在resultful风格中,用户请求的url使用同一个URL而用请求方式:get/post/delete/put等方式对请求的处理方法进行区分。这样可以在前后台分离的开发中让前端开发人员不会对请求的资源地址产生混淆,形成一个统一的接口。

三、特点

(1)每种url代表了一种资源。

(2)客户端和服务器之间,传递这个资源的某种表现层。

(3)客户端通过四个http动词,对服务器资源进行操作。实现表现层状态的转化。

四、使用规定

在http协议中,四个表示操作方式的动词:GET/Post/put/Delete,他们分别对应四种基本操作。

Get用来获取资源。post用来新建立资源,也可以更新资源。put用来更新资源。Delete用来删除资源。

GET,对应select:是从服务器查询,可以在服务器通过请求的参数区分查询的方式。

POST,对应Create:在服务器新建立一个资源,调用insert操作。

PUT,对应update操作:在服务器更新资源,调用update操作。

PATCH,对应update操作,在服务器更新资源,客户端提供改变的属性。(目前JDK7没有实现,tomcat7也不行。)

DELETE,对应DELETE操作,从服务器删除资源,调用delete语句。

五、spring mvc中实现restfule风格接口

1.四种动作

Spring MVc 对resstful应用提供了以下支持。利用@RequestMapping 指定要处理请求的url模板和http请求的动作类型。利用@PathVariable将url请求模板中的变量映射到处理方法参数上。前台利用AJAX,在客户端发出put、delete动作的请求。

一般的应用格式如下:

@RequestMapping(value="/{id}",method=RequestMethod.GET)

@RequestMapping(value="/{id}",method=RequestMethod.POST)

@RequestMapping(value="/{id}",method=RequestMethod.DELETE)

@RequestMapping(value="/{id}",method=RequestMethod.PUT)

2.参考例子

@RequestMapping(value="/queryQuByTypeIdAndChaID/{questionTypeId}/{chapterId}",method=RequestMethod.GET,produces="text/html;charset=UTF-8")

public void queryQuByTypeIdAndChaID(HttpServletRequest request,HttpServletResponse response,@PathVariable String questionTypeId,

@PathVariable String chapterId ){

}

六、参考连接

在ABAP (Advanced Business Application Programming) 中,"Resultful"通常指的是函数模块(Function Module)或方法的成功与否以及返回的结果。如果你想要开发一个返回结果的函数模块,你可以按照以下步骤进行: 1. **定义目的**: 明确你的函数模块需要完成什么样的任务,比如从数据库检索数据,计算某项值,或者执行某个特定的操作。 2. **声明变量**: 根据任务需要,声明输入和输出变量。输入变量用于接收参数,输出变量用于返回结果或错误消息。 3. **编写代码**: 使用ABAP编程语言编写逻辑,包括条件判断(IF-ELSE),循环(DO-WHILE),以及必要的数据库访问(通过SQL statements)或业务规则的检查。 4. **处理成功和失败情况**: 如果操作成功,设置输出变量以示成功,并提供所需的数据结果。如果遇到错误,应设置错误码,并返回适当的错误消息。 5. **定义出口点**: 在函数模块的最后,定义一个或多个出口点(如ALIAS),标明该函数模块何时结束并返回结果。 6. **文档注释**: 提供详细的函数说明,包括输入参数、可能的返回值和异常处理。 7. **测试**: 创建测试场景验证函数模块的行为,确保它在各种情况下都能正确地处理结果或错误。 示例代码(简化版): ```abap REPORT z_test_resultful. INTERFACE z_my_function. IMPORTING i_input = i_value TYPE anytype. EXPORTING e_output = e_result TYPE anytype. ENDINTERFACE. CLASS z_my_class DEFINITION CREATE PUBLIC. METHOD my_function IMPORTING i_input TYPE anytype RETURNING VALUE(e_output) TYPE anytype. ENDCLASS. CLASS z_my_class IMPLEMENTATION. METHOD my_function. DATA: ls_result = cl_abap_message=>get_number( i_input ). IF sy-subrc = 0. " Successful case e_output = ls_result. FUNCTION #( cl_abap_exception=>ec_success ). ELSE. " Error case e_output = sy-subrc. FUNCTION #( cl_abap_exception=>ec_failure ). ENDIF. ENDMETHOD. ENDCLASS. CREATE OBJECT z_my_instance OF CLASS z_my_class. z_my_instance->my_function( i_input = '123' )->e_output. " Call function and print result ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值