Restlet+Fastjson 快速構建輕量級Java RESTful Webservice

jopen 10年前發布 | 35K 次閱讀 Restlet WEB服務/RPC/SOA

服務的數據交換格式主要采用JSON協議,服務為REST風格,連接采用Http協議,數據庫使用MySQL,OR Mapping采用的是Hibernate.

主要用的類庫:

  • Restlet Framework,Java輕量級REST框架;
  • Fastjson,最快的Java Json parser,功能強大,簡單易用;
  • Hibernate,Java最常用的OR Mapping框架;
  • </ul>

    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要求:

    • 客戶端和服務器結構;
    • 連接協議具有無狀態性;
    • 能夠利用Cache機制增進性能;
    • 層次化的系統;
    • 隨需代碼 - Javascript (可選);

    主要功能代碼:

    框架的快速上手,先理解概念并掌握主要功能,然后學會配置文件和主要類的使用。

    一個框架的功能往往非常之多,經常看到一些框架本身的介紹都能夠寫成一本厚厚的書。但是實際項目中,要快速掌握主要的功能,需要的功能。往往框架20%的主要功能就足以滿足我們80%的需要。

    項目里最常用到類就是:ServerResource 和 Application, Router 類。

    Application和Router 類:

        public class MyApplication extends Application {  
    
            //層級URI和資源綁定  
            public Restlet createInboundRoot() {  
                Router router = new Router(getContext());   // 定義router對象,用于綁定服務器資源  
                router.attach("/test", MyResource.class);  
                router.attach("/test/{param1}", MyResource.class);  
                router.attach("/test/{param1}/{param2}", MyResource.class);  
                }  
            }  
        }  

    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 開發實例,寫的挺詳細的。

    來自:http://blog.csdn.net/thisinnocence/article/details/24702137

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!