GVKun编程网logo

如何使用输入参数创建Restful Web服务?(创建输入参数的存储过程)

23

本文将介绍如何使用输入参数创建RestfulWeb服务?的详细情况,特别是关于创建输入参数的存储过程的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于

本文将介绍如何使用输入参数创建Restful Web服务?的详细情况,特别是关于创建输入参数的存储过程的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于c# – 我应该从哪里开始制作基于.NET框架的RESTful Web服务?、java – Restful Web服务如何比基于SOAP的Web服务更好、java – 为什么我不能在ejb模块中创建RESTful Web服务?、java – 如何使用RESTlet在RESTful Web服务中强制执行“会话”?的知识。

本文目录一览:

如何使用输入参数创建Restful Web服务?(创建输入参数的存储过程)

如何使用输入参数创建Restful Web服务?(创建输入参数的存储过程)

我正在创建静态Web服务,我想知道我们如何创建带有输入参数的服务,以及如何从Web浏览器调用它。

例如

@Path("/todo")public class TodoResource {    // This method is called if XMLis request    @PUT    @Produces( {MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})    public Todo getXML() {        Todo todo = new Todo();        todo.setSummary("This is my first todo");        todo.setDescription("This is my first todo");        return todo;    }

我可以使用http:// localhost:8088 / JerseyJAXB / rest /
todo调用它

我想创建一个像

@Path("/todo")    public class TodoResource {        // This method is called if XMLis request        @PUT        @Produces( {MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})        public Todo getXML(String x, String y) {            Todo todo = new Todo();            todo.setSummary(x);            todo.setDescription(y);            return todo;        }

在基于Soap的Web服务的情况下,我将这样调用它

http:// localhost:8088 / JerseyJAXB / rest / todo?x = abc&y =
pqr

但是我想知道如何使用rest调用它,也可以像在上面的示例中一样使用rest和jersey时传递参数。

答案1

小编典典

您可以。尝试这样的事情:

@Path("/todo/{varX}/{varY}")@Produces({"application/xml", "application/json"})public Todo whatEverNameYouLike(@PathParam("varX") String varX,    @PathParam("varY") String varY) {        Todo todo = new Todo();        todo.setSummary(varX);        todo.setDescription(varY);        return todo;}

然后使用此URL调用您的服务;
http:// localhost:8088 / JerseyJAXB / rest / todo / summary /
description

c# – 我应该从哪里开始制作基于.NET框架的RESTful Web服务?

c# – 我应该从哪里开始制作基于.NET框架的RESTful Web服务?

我正在创建一个iOS应用程序,我需要通过Web服务连接到数据库.我只知道使用RESTful Web服务的基本知识,我之前从未编写过自己的知识,并且想知道您是否可以就如何编写自己的RESTful Web服务向我提出任何建议.

在我的iOS程序中,我将向Web服务发送一个部件号,然后Web服务将需要返回部件上的颜色和大小信息.我不确定XML是最好的格式还是有更好的东西?

我想我的问题在这里是双重的:

>这是我应该使用RESTful Web服务吗?
>在哪里可以找到有关创建基于.NET的RESTful Web服务的教程?

解决方法

我的建议是使用 ASP.NET MVC3实现这一点 – 因为这提供了一个很好的控制器 – 动作范例,非常适合实现REST服务.你可以使用WCF,我相信它会正常工作,但从个人经验来看,我发现MVC3很容易用来为iOS客户端编写REST后端.

我建议使用JSON而不是XML,主要是因为它比XML更简洁,但是如果您稍后决定为数据库实现Web前端,它还有其他优点,因为Javascript对JSON有很好的支持.

iOS有许多JSON库,包括SBJSON和YAJL

还有一个备受推崇的iOS REST实现框架,名为RestKit.

至于使用MVC famework实现REST的教程,this might be one to look at.

java – Restful Web服务如何比基于SOAP的Web服务更好

java – Restful Web服务如何比基于SOAP的Web服务更好

我已经经历了各种各样的网站,他们提供的唯一答案是 – Restful Web服务使用Http自己的方法,如(GET,POST,PUT,DELETE)..而基于SOAP的Web服务使用自己的自定义方法.
– Restful Web服务将每个服务方法视为一种资源,并给它一个URI ..

然而,我不明白这些答案的全部意义.至于为什么这些事情证明比基于SOAP的Web服务有如此大的优势.

一个例子将不胜感激

解决方法

REST自然适合Web / Cloud API,而SOAP适合于分布式计算场景.

带宽是REST的主要优点,因为没有复杂的文档遍历(即XML,SOAP头),这对于良好的Web API来说是非常重要的. JSON是用于数据交换的广泛认可和简单的标准,并且可以通过浏览器和客户端代码轻松阅读,这就是为什么大多数RESTful API(雅虎是一个很好的例子)提供了JSON.

更不用说REST可用于XmlHttpRequest对象,这对于Web API的AJAX能力也是至关重要的.

当然,REST的缓存功能当然不能忽视.由于REST基于HTTP,因此可以利用HTTP(和Web本身)的许多语义,通过使用HTTP数据包(expires)上的标头来启用浏览器的缓存.更不用提gzip压缩来提高效率了.性能方面,REST实际上是通过SOAP来完成的.

对于SOAP来说,SOAP适用于状态操作. WS *标准(安全性,事务处理等)处理这种在分布式场景中相当普遍的管道.可以使用REST来完成REST,但是它不会真的是REST. SOAP对于定义客户端和服务器之间的操作合同非常有用,这在分布式场景中至关重要.

所以我的意见(以及整个SOAP与REST的事情都是高度评价的),将SOAP用于分布式计算场景,将REST用于Web API.

java – 为什么我不能在ejb模块中创建RESTful Web服务?

java – 为什么我不能在ejb模块中创建RESTful Web服务?

我使用的是Netbeans 6.8.我可以看到在我的独立ejb模块中创建Web服务的选项,但我似乎无法找到在我的ejb模块中创建基于RESTful的Web服务的选项.在ejb模块中是否有任何限制,我只能创建基于SOAP的Web服务而不是RESTful?或者它是Netbeans 6.8的错误?

解决方法

EJB3规范的第2.6章:

To support web service
interoperability,the EJB specification
requires compliant implementations to
support XML-based web service
invocations using WSDL and SOAP or
plain XML over HTTP incon- formance
with the requirements of the
JAX-WS[32],JAX-RPC[25],Web Services
for JavaEE[31],and Web Services
Metadata for the Java Platform [30]
specifications.

换句话说:EJB3只能作为SOAP Web服务公开.

java – 如何使用RESTlet在RESTful Web服务中强制执行“会话”?

java – 如何使用RESTlet在RESTful Web服务中强制执行“会话”?

我是RESTful Web服务和RESTlet的新功能.我们只有建立基于servlet的Web应用程序(JBoss / Apache上的Servlet / JSP)的经验.现在,我们正在构建一个基于RESTlet的应用程序,其中服务器端API将被两种类型的客户端使用 – Web使用浏览器和基于桌面的swing.

我所理解的是根据REST概念
a)服务器无法维护会话以提高可扩展性等原因
b)客户端的每个请求都应该是独立的

现在,我真的很困惑如何实现这一点.假设我们采用简单的购物车应用程序.

步骤1)客户端发送认证请求,服务器认证,服务器响应OK.

步骤2)客户端向购物车发送添加项目的请求.服务器响应OK.

步骤3)客户端发送另一个请求,将第2项添加到购物卡.服务器响应OK.

通常,在通常的Web应用程序中,在服务器上的步骤1中创建会话,从那时开始,与该客户端相关的所有请求将自动与相同的会话相关联,并且我们将会话状态(在这种情况下为购物车)存储在会话对象,并检索/更新客户端的后续请求.

现在,在上述情况下:

1)如果服务器上没有会话维护,我们如何在步骤2和3中验证和授权客户端?

客户需要每个请求发送一些附加信息?

3)如何在步骤3中检索客户特定的购物车?

4)客户端是否需要在步骤3中再次发送步骤2中由服务器创建/返回的购物车?

显然,这是最简单的用例,因此每个开发RESTful Web服务的人都必须设计他们的应用来处理这个问题.使用RESTLet在RESTful Web服务中处理会话管理,身份验证,授权的最佳和最常用的方法是什么?如果我们必须在客户端数据的服务器端维护缓存,那么我们代表服务器维护会话有什么不同?

提前致谢,

解决方法

1) how do we authenticate and authorize Client in Step 2 and 3 if
there is no session maintained on the server ?

2) does client need to send some additional information with each
request ?

是.您必须在每个请求中发送身份验证/授权数据.这将阻止服务器“记住”你是谁(即无状态服务器,没有会话)

3) How do we retrieve the client specific Shopping Cart in Step 3 ?

我们来问一个不同的问题:如果服务器重新启动会发生什么?您是否希望所有购物车数据丢失?可能不会.你应该把它存放在一个重新启动的地方.应用持久存储.可能在服务器或客户端…

…现在,如果您的客户端重启?您可以选择使用POST请求(用户添加第一个项目)为该用户创建购物车资源,或者在客户端登录时(浪费)创建购物车资源.然后使用PUT / DELETE继续更新购物车,并使用GET进行读取.

应该在数据库?可能,取决于这是怎么想要的.如果它必须坚持下去,这是一个很好的地方来保持它,以便它可以在重新启动后生存.

那么如何接收客户特定的购物车?那么你只需要发送GET资源的请求!而已!第一个POST将在适当的URL创建一个资源,然后可以使用它.

稳定的网络服务还具有安静的网址,这是设计的关键部分.

4) Does the client need to send it’s Shopping Cart that was
created/returned by server in Step 2 again in Step 3 ?

不,如上所述.但是,如果您在客户端使用cookies或LocalStorage或其他信息,那么也许您会这样做.

ObvIoUsly,this is the simplest use case and so every one developing
RESTful web services must be designing their app to handle this. What
is the best and most common way to handle session management,
authentication,authorization in RESTful web services using RESTLet ?

是.这很简单,但是需要一段时间来思考“资源”而不是“服务”.在安静的设计中,一切都是(或可以)一个资源,包括交易,购物车等,

但是,授权/认证是http请求数据包的一部分,并随每个请求一起发送.我建议你阅读那些.

If we have to maintain cache on server side with the client’s data
then how is this different from server maintaining sessions on our
behalf ?

巨大差距!您是否为高效缓存或维持会话?如果系统重新启动,您的系统将在空缓存上无缝工作?如果是,您正在缓存您正在维持状态的其他表现.

我强烈建议您阅读Richardson& Ruby来阐述上述概念,并且深入了解如何设计安静的服务…它需要一些习惯.

我们今天的关于如何使用输入参数创建Restful Web服务?创建输入参数的存储过程的分享就到这里,谢谢您的阅读,如果想了解更多关于c# – 我应该从哪里开始制作基于.NET框架的RESTful Web服务?、java – Restful Web服务如何比基于SOAP的Web服务更好、java – 为什么我不能在ejb模块中创建RESTful Web服务?、java – 如何使用RESTlet在RESTful Web服务中强制执行“会话”?的相关信息,可以在本站进行搜索。

本文标签: