zoukankan      html  css  js  c++  java
  • Restlet+Fastjson 高速构建轻量级 Java RESTful Webservice

    自己入门Java时做过一个小型RESTful Web Service的项目,这里总结一下。

    服务的数据交换格式主要採用JSON,服务为REST风格。连接採用Http协议,数据库使用MySQL,OR Mapping採用的是Hibernate.  小数据直接用URL传參,配合Restlet 的强大的 URI重写重定向。层级URI路由功能。更是十分的方便。数据大时就是用JSON。配合强大的Fastjson,解析起来也是十分迅速和便捷。

    主要用的类库:

    REST是一种设计风格而不是标准,通常基于使用HTTP、URI、XML、HTML这些现有广泛流行的协议和标准,详见wikipedia

    有一点要注意的是:REST的无状态指的是连接协议,而非应用本身的状态。REST传输会包括应用的全部状态信息,可大幅减少对HTTP连接的反复请求资源消耗。

    REST设计:

    • 面向资源的接口设计:如今将网络上的操作实体都作为资源来看待,同一时候URI的设计也是体现了对于资源的定位设计;
    • 抽象操作为基础的增删改查:Http中的get,put,post,delete分别相应了read,update,create,delete四种操作,实际中get方法和post方法就已经足够使用了,假设不过作为对于资源的操作。抽象成为这四种已经足够了,可是对于如今的一些复杂的业务服务接口设计,未必可以满足;

    REST特点:

    • 资源是由URI来指定。
    • 对资源的操作包含获取、创建、改动和删除资源,这些操作正好相应HTTP协议提供的GET、POST、PUT和DELETE方法。
    • 通过操作资源的表现形式来操作资源;
    • 资源的表现形式则是XML或者HTML,取决于读者是机器还是人。是消费web服务的客户软件还是web浏览器。当然也能够是不论什么其它的格式。

    REST要求:

    • client和server结构;
    • 连接协议具有无状态性。
    • 可以利用Cache机制增进性能。
    • 层次化的系统;
    • 随需代码 - Javascript (可选);

    主要功能代码:

    框架的高速上手,先理解概念并掌握主要功能,然后学会配置文件和主要类的使用。

    一个框架的功能往往很之多,常常看到一些框架本身的介绍都可以写成一本厚厚的书。

    可是实际项目中。要高速掌握基本的功能,须要的功能。往往框架20%的主要功能就足以满足我们80%的须要。

    项目里最经常使用到类就是:ServerResource 和 Application, Router 类。

    Application和Router 类:

    public class MyApplication extends Application {
    	
    	//层级URI和资源绑定
    	public Restlet createInboundRoot() {
    		Router router = new Router(getContext()); 	// 定义router对象。用于绑定server资源
    		router.attach("/test", MyResource.class);
    		router.attach("/test/{param1}", MyResource.class);
    		router.attach("/test/{param1}/{param2}", MyResource.class);
                    return router;
    	}
    }
    

    ServerResource类:

    public class MyResource extends ServerResource{
    	
    	@Override
    	protected void doInit() throws ResourceException {
    		// 初始化,经常初始化属性值。解码URL传过来的參数等。
    	};
    
    	@Get
    	public Representation fun1() {
    		//自己的方法
    	}
    
    	@Post
    	public Representation fun2(Representation entity){
    		//自己的方法
    	}
    }

    当然。项目也使用了非常多的servlet, 配合一些其它功能的实现。

    想要深入使用,还要自己去看官方的Tutorial,去Github上看有没有符合自己须要的开源码。最后推荐一篇博文: Restlet 开发实例,写的挺具体的。

  • 相关阅读:
    vue react 路由是否包含id
    vue react初始化脚手架
    多线程编程基础
    模拟实现简化版List迭代器&嵌入List
    斐波那契数与二分法的递归与非递归算法及其复杂度分析
    C语言模拟实现多态
    C++智能指针剖析(下)boost::shared_ptr&其他
    C++智能指针剖析(上)std::auto_ptr与boost::scoped_ptr
    C++模板实现动态顺序表(更深层次的深浅拷贝)与基于顺序表的简单栈的实现
    C++—模板(2)类模板与其特化
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5162826.html
Copyright © 2011-2022 走看看