`
xvridan
  • 浏览: 37325 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

REST参数问题浅显的思考

阅读更多
看见一些这方面的讨论,和这段时间基于Rails的REST试验的感受,谈谈个人的看法。
其实这个题目有点不达意,REST根本不会有参数。也正因为这一点,非REST的Web程序遗留下来的思维--url有时需要参数来生成不同视图或资源,有些人认为REST可能办不到或者是需要解决的。其实一个REST架构的程序中这个问题是根本不存在的,绝对不需要考虑的。
如果非要从着非REST的思维来看,“解决”REST“参数”的办法如下:
1.“参数”隐含在URL中
REST把每个Web的东西看成资源,而每个资源都有唯一的标识。也就是说给予不同的URL会标识不同的资源,需要传递的‘参数’就包含在URL之中了。
如:.../form_do.jsp?id=5&flag=modify&type=1(这是以前项目的例子)其中flag代表操作、type代表模型类的类型。在Rails中会表示成为/controller_name/5;edit,Rails中我们用不同的控制器去操作不同的模型,所以这里controller_name就是前面type这个参数。前面的URL参数flag为delete、update、add(new)是一样的道理的。

2.使用POST
Rails的REST还没有做到所有的资源都能用URL标识,比如说:搜索。给定的关键词搜索后得到的东西也就是资源,还不能用唯一URL标识。
http://www.iteye.com/topic/70113这里已经描述解决方法了。

在使用REST架构程序时,仔细的设计程序的架构,使用嵌套资源(Nested Resources)也会去掉一些关于“参数”考虑。
我使用REST架构程序时,刚开始还考虑参数传递的的问题,随着学习的深入反而参数的问题消失的无影无踪。使用REST架构程序与大原先方式一样自然。

以上不知妥不妥,欢迎指正。
分享到:
评论
1 楼 weiqingfei 2007-06-11  
<br/>
<strong>xvridan 写道:</strong><br/>
<div class='quote_div'> 1.“参数”隐含在URL中<br/>
REST把每个Web的东西看成资源,而每个资源都有唯一的标识。也就是说给予不同的URL会标识不同的资源,需要传递的‘参数’就包含在URL之中了。<br/>
如:.../form_do.jsp?id=5&amp;flag=modify&amp;type=1(这是以前项目的例子)其中flag代表操作、type代表模型类的类型。在Rails中会表示成为/controller_name/5;edit,Rails中我们用不同的控制器去操作不同的模型,所以这里controller_name就是前面type这个参数。前面的URL参数flag为delete、update、add(new)是一样的道理的。<br/>
<br/>
</div>
<br/>
<br/>
<br/>
如果使用ajax的话,就可以用/something/5     方法用put

相关推荐

    rest 调用有参数接口

    这篇博客文章《REST调用有参数接口》可能详细介绍了如何在Java环境中使用RESTful API进行有参数的请求。 首先,RESTful API的设计原则是使用HTTP方法(GET、POST、PUT、DELETE等)来表示资源的不同操作。当需要传递...

    ES6中的rest参数与扩展运算符详解

    在ES6中,rest参数和扩展运算符是两种强大的新特性,它们极大地改善了JavaScript处理函数参数和数组的方式。下面我们将深入探讨这两种特性。 **Rest参数** 是一个特殊的参数,用 `...` 符号后跟一个变量名来定义。...

    深入学习JavaScript中的Rest参数和参数默认值

    本文将讨论使 JavaScript 函数更有表现力的两个特性:Rest 参数和参数默认值。 Rest 参数 通常,我们需要创建一个可变参数的函数,可变参数是指函数可以接受任意数量的参数。例如,String.prototype.concat 可以接受...

    es6函数之rest参数用法实例分析

    在JavaScript的ES6版本中,引入了一种新的语法特性——rest参数,它允许开发者在函数定义时,捕获传入的剩余参数,将其作为一个数组处理。这使得处理不定数量的参数变得更加简洁和直观。本文将深入探讨rest参数的...

    ArcGIS_REST_API常用参数简要说明.pdf

    ArcGIS REST API常用参数简要说明 ArcGIS REST API是一种基于 Representational State of Resource(REST)架构风格的应用程序接口,提供了大量的参数供开发者使用。这些参数可以控制输出地图的格式、大小、分辨率...

    解决JS访问Rest的跨域问题和数据格式问题

    1、基于wcf框架对Rest架构的web服务实现; 2、支持javascript的多种方式跨域访问(GET/POST/PUT/DELETE); 3、解决服务调用参数传递的动态设计数据格式(Xml/Json);

    探讨JavaScript中的Rest参数和参数默认值

    为了解决这些问题,ES6引入了Rest参数。Rest参数使用省略号(...)语法来收集函数中的剩余参数,并将这些参数作为一个数组返回。使用Rest参数的函数拥有更清晰的参数声明,并且可以很容易地获取所有剩余的参数值。在...

    轻松学习JavaScript函数中的 Rest 参数

    JavaScript是一种广泛使用的前端编程语言,它在ECMAScript 2015(ES6)中引入了许多新特性,其中Rest参数是其中一项重要特性。Rest参数为开发者提供了一种新的方式来处理函数中不确定数量的参数,这在之前是通过...

    REST实战(REST in Practice)

    通过以上内容可以看出,《REST实战(REST in Practice)》不仅是一本介绍REST基本概念和技术的书籍,更重要的是它提供了一种实用的方法论,帮助读者理解如何将REST应用于现实世界的问题中,从而使分布式系统的设计更加...

    kettle rest 接口 请求实例

    保存token的方法有很多种,可以将其写入到Kettle的变量或参数中,也可以存储在一个单独的文件中。当需要进行API调用时,Kettle作业或转换可以从这些位置读取并使用该token。为了保持安全性,应当确保存储token的地方...

    Activiti-rest所有接口描述

    ### Activiti REST 接口详解 #### 一、概述 Activiti是一款开源的工作流引擎,用于简化业务流程的实现与管理。Activiti5.18.0版本提供了两个主要的WAR包:`activiti-explorer.war`和`activiti-rest.war`。前者为...

    REST服务构建的web应用的优势和不足

    REST 服务构建的 Web 应用优势和不足 REST(REpresentational State Transfer)是一种混合架构风格,当前互联网的核心架构风格。基于 REST 服务(RESTful Service)的 Web 应用系统设计任务主要包括:识别并设计 ...

    谷歌浏览器插件+AdvancedRestClient+Http Rest API测试调试

    - 参数:在请求体中添加数据,这取决于你的API要求的格式,可能是JSON、XML或其他格式。 3. 发送请求:配置完成后,点击"Send"按钮,ARC将向指定的URL发送请求,并显示服务器返回的响应。响应信息包括状态码、头部...

    nodejs+websock+rest+rest调用

    基于nodejs的websocket平台,该平台包括异步的数据库调用,异步的rest api访问,以及能够提供rest api的服务。该平台能实现基于ws的聊天室,可以将聊天的信息调用rest api存储到数据库,可以通过网页访问该平台提供...

    REST地图与天地图叠加

    这通常通过发送一个GET请求到WMS服务URL,指定图层、版本、坐标系统等参数完成。 4. 加载REST地图服务:通过SuperMap iClient的REST API,加载自定义的地图服务,这可能包括特定的图层、数据源等。REST服务返回的...

    白话REST-识别真假REST

    REST(Representational State Transfer),即“表征状态转移”,是由Roy Fielding博士在其2000年的博士论文中提出的一种软件架构风格。REST强调基于网络的分布式系统的松耦合设计,并推崇无状态通信机制。在理解...

Global site tag (gtag.js) - Google Analytics