当前位置:  开发笔记 > 编程语言 > 正文

任何简单的Java REST教程?

如何解决《任何简单的JavaREST教程?》经验,为你挑选了3个好方法。

REST的每个教程或解释都过于复杂 - 在对CRUD的初步解释和SOAP的简单假设之后,学习曲线上升得如此之快.为什么人们不能再写出体面的教程了!

我正在看Restlet - 它不是最好的,教程中缺少一些东西,语言/语法有点令人困惑和不清楚.花了我几个小时来解开他们的第一步教程(在另一个Java程序员的帮助下!)

RESTlet教程评论

总的来说,我不确定该教程究竟是针对谁 - 因为全面存在相当程度的假设知识,所以进入REST和Restlet框架冷却让你有很多'追赶工作'要做,并且一遍又一遍地阅读段落.

    我们很难确定罐子必须被复制到正确的lib文件夹中.

    web.xml创建HTTP状态500错误的问题 -

服务器遇到内部错误(),导致无法完成此请求

,教程说:

"像往常一样创建一个新的Servlet Web应用程序,添加一个"com.firstStepsServlet"包并将资源和应用程序类放入其中."

这意味着您的类FirstStepsApplication的完全限定名称是com.firstStepsServlet.FirstStepsApplication,因此我们必须更改web.xml以引用正确的类,例如:

原版的:


         firstStepsServlet.FirstStepsApplication

应该:


         com.firstStepsServlet.FirstStepsApplication


结论

我的印象是,REST的概念应该比SOAP简单得多 - 但是如果不是更复杂的话,它似乎也很糟糕 - 根本不能得到它!GRRRR

任何好的链接 - 非常感谢.



1> 小智..:

您能否准确描述一下我们的Restlet教程中是什么导致您的麻烦?我们有兴趣修复/改进需要的东西.

你看过截屏了吗? http://www.restlet.org/documentation/1.1/screencast/

否则,我们在第12章中写的O'Reilly书中有一个Restlet教程.

如果您仍有麻烦,请联系我们的邮件列表:http: //www.restlet.org/community/lists

此致,JérômeLouvel

的Restlet〜创始人和首席开发者〜http://www.restlet.org Noelios技术〜共同创始人〜http://www.noelios.com



2> 小智..:

听起来你可以充分理解REST的基础知识,为此我强烈推荐Leonard Richardson和Sam Ruby的RESTful Web服务.我提供了一个很好的REST介绍:它是什么以及如何实现(实用)RESTful Web服务.

本书中的大多数示例代码实际上都是Ruby,但即使您不是Ruby专家也很容易理解.但有一件事应该对你有所帮助,本书后面的章节之一包含了几个RESTful框架的概述,包括Restlet.它并没有真正进入任何代码(它是一个50,000英尺的天桥),但我认为它会在这个阶段为您提供所需的代码.


有趣的是,在我阅读你的帖子之前,我刚刚在亚马逊上订购了RESTful Web Services.感谢您的宝贵意见.

3> 小智..:

Restlet框架由四个主要部分组成.

1. Restlet API

首先,有一个"Restlet API",一个支持REST概念的中性API,便于处理客户端和服务器端应用程序的调用.这个API由Restlet Engine支持,现在它们都在一个JAR(" org.restlet.jar ")中提供.

API和实现之间的这种分离类似于Servlet API和Web容器(如Jetty或Tomcat)之间或JDBC API和具体JDBC驱动程序之间的分离.

2.检索网页的内容

正如我们在介绍文章中提到的,Restlet框架同时是客户端和服务器框架.例如,Restlet可以使用其HTTP客户端连接器轻松使用远程资源.REST中的连接器是一种软件元素,通常通过实现网络协议的一端来实现组件之间的通信.Restlet基于现有的开源项目提供了几种客户端连接器实现.连接器部分列出了所有可用的客户端和服务器连接器,并说明了如何使用和配置它们.

在这里,我们将获得现有资源的表示,并将其输出到JVM控制台中:

// Outputting the content of a Web page  
new ClientResource("http://").get().write(System.out);  

请注意,上面的示例使用简化的方法通过ClientResource类发出调用.如果您需要多线程或更多控制,仍然可以直接使用Client连接器类或Request对象.以下示例如何在客户端调用中设置一些首选项,如引用URI.它也可能是您希望作为响应接收的语言和媒体类型:

// Create the client resource  
ClientResource resource = new ClientResource("http://www.restlet.org");  

// Customize the referrer property  
resource.setReferrerRef("http://www.mysite.org");  

// Write the response entity on the console  
resource.get().write(System.out);  

3.收听Web浏览器

现在,我们想看看Restlet框架如何监听客户端请求并回复它们.我们将使用内部的Restlet HTTP服务器连接器(即使可以切换到其他的,例如基于Mortbay的Jetty的连接器)并返回一个简单的字符串表示"hello,world"作为纯文本.请注意,Part03类扩展了Restlet提供的基本ServerResource类:

 public class Part03 extends ServerResource {  

    public static void main(String[] args) throws Exception {  
        // Create the HTTP server and listen on port 8182  
        new Server(Protocol.HTTP, 8182, Part03.class).start();  
    }  

    @Get  
    public String toString() {  
        return "hello, world";  
    }  

}  

如果您运行此代码并启动服务器,则可以打开Web浏览器并点击.实际上,任何URI都可以工作,也可以尝试.请注意,如果从其他计算机测试服务器,则需要将服务器的IP地址或域名替换为"localhost"(如果已定义).

到目前为止,我们主要通过ClientResource和ServerResource类向您展示了Restlet API中最高级别的抽象.但是随着我们前进,您将发现这两个类由富API支持,允许您操作所有REST工件.

4. REST架构概述

让我们退一步,从REST的角度考虑典型的Web架构.在下图中,端口表示连接器,该连接器支持组件之间的通信,这些组件由较大的框表示.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有