2018.03.03、android-照虎畫貓搭建簡易Rest伺服器

Traning發表於2018-03-03

一、前言

對於android開發人員經常需要一個測試的介面來進行網路請求的測試,每次都需要自己上網查詢合適的介面。對於開發者來說太浪費自己的寶貴時間了。基於此 一直想做一個屬於自己管控伺服器。

二、搭建環境介紹

1、開發工具: IntelliJ IDEA 2017.1.5
選擇 Ultimate(最終)的版本
下載地址

2、伺服器框架:
1、Jersey:java中的restful web服務的框架
2、guava:java封裝的
3、Hibernate:處理資料庫與物件關係的對映框架

3、環境
mySQL、Tomcat、java8

三、搭建步驟

1、通過 選單 file ---> new --->project
2、選擇java 和web 點選 下一步

Alt text
3、填寫GroupID 、ArtifaactID 下一步
2018.03.03、android-照虎畫貓搭建簡易Rest伺服器
4、完成之後工程
2018.03.03、android-照虎畫貓搭建簡易Rest伺服器

5、 接下來就是配置 Tomcat了

2018.03.03、android-照虎畫貓搭建簡易Rest伺服器

2018.03.03、android-照虎畫貓搭建簡易Rest伺服器
2018.03.03、android-照虎畫貓搭建簡易Rest伺服器
2018.03.03、android-照虎畫貓搭建簡易Rest伺服器

6、在build.gradle檔案中dependencies 新增jersey \ Gson \ Guava

    compile 'com.google.code.gson:gson:2.8.0'
    //java 類的封裝 包比較大
    compile 'com.google.guava:guava:21.0'

    //jersey restful 進行介面請求
    compile 'org.glassfish.jersey.core:jersey-client:2.26-b03'
    compile 'org.glassfish.jersey.core:jersey-server:2.26-b03'
    compile 'org.glassfish.jersey.containers:jersey-container-servlet:2.26-b03'
    //Gson 解析庫
    compile 'org.glassfish.jersey.media:jersey-media-json-jackson:2.26-b03'
    
    //資料庫操作框架 先加上
    // https://mvnrepository.com/artifact/org.hibernate/hibernate-core
    compile 'org.hibernate:hibernate-core:5.2.9.Final'
    // https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager
    compile 'org.hibernate:hibernate-entitymanager:5.2.9.Final'
    // https://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0
    compile 'org.hibernate:hibernate-c3p0:5.2.9.Final'

    // https://mvnrepository.com/artifact/mysql/mysql-connector-java
    compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.6'

複製程式碼

就像這樣 -.-||

2018.03.03、android-照虎畫貓搭建簡易Rest伺服器

7、在webapp 資料夾下建立WEB-INF \ web.xml 檔案

2018.03.03、android-照虎畫貓搭建簡易Rest伺服器

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
    <display-name>Jersey</display-name>
    <servlet>
        <servlet-name>IDoubleApiServlet</servlet-name>
        <!--容器-->
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <!--對映的包名,用於搜尋處理類-->
            <param-value>net.doubelman.web.service</param-value>
        </init-param>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>net.doubelman.web.Application</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!--對映-->
    <servlet-mapping>
        <servlet-name>IDoubleApiServlet</servlet-name>
        <!--訪問路徑-->
        <url-pattern>/api/*</url-pattern>
    </servlet-mapping>
</web-app>
複製程式碼

8、對映建立:
包:net.doubelman.web
檔案:Application
資料夾:service

2018.03.03、android-照虎畫貓搭建簡易Rest伺服器

注意建立順序!

AccountService 內容:

package net.doubelman.web.service;

import javax.ws.rs.GET;
import javax.ws.rs.Path;

/**
 * Created by fmm on 2018/3/3.
 */
@Path("/account")
public class AccountService {

    @GET
    @Path("/login")
    public String login(){

        return "Hello tom !";
    }
}
複製程式碼

Application內容:

package net.doubelman.web;

import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import net.doubelman.web.service.AccountService;
import org.glassfish.jersey.server.ResourceConfig;

import java.util.logging.Logger;

/**
 * Created by fmm on 2018/3/3.
 */
public class Application extends ResourceConfig {

    public Application() {
        //新增一個掃描的服務包
        packages(AccountService.class.getPackage().getName());
        //註冊Jackson 解析器
        register(JacksonJsonProvider.class);
        //註冊日誌 Logger
        register(Logger.class);
    }
}
複製程式碼

至此一個基本的restful 伺服器基本搭建完成了

四、測試搭建結果

點選執行按鈕

2018.03.03、android-照虎畫貓搭建簡易Rest伺服器

在瀏覽器中輸入:http://localhost:8080/api/account/login
執行結果:

2018.03.03、android-照虎畫貓搭建簡易Rest伺服器

調介面成功 哈哈!

但是 搞了半天,說好的返回json呢!!別急 接著看!

package net.doubelman.web.service;

import com.google.gson.Gson;
import net.doubelman.web.Bean.Student;

import javax.ws.rs.GET;
import javax.ws.rs.Path;

/**
 * Created by fmm on 2018/3/3.
 */
@Path("/account")
public class AccountService {

    @GET
    @Path("/login")
    public String login(){
        //自己建立Student類哈  不要懶
        Student student = new Student();
        student.setAge(18);
        student.setId("20180303");
        student.setName("Tom");

        //臨時的哈  正式的可不能這麼幹!
        Gson gson = new Gson();
        String stuStr = gson.toJson(student);
        return stuStr;
    }
}

最終的目的:
複製程式碼

2018.03.03、android-照虎畫貓搭建簡易Rest伺服器

好了基本的伺服器的搭建就完成了!
當然這這是初步的搭建
例如:如何統一處理返回Json資料、資料庫連線、新增資料庫、建立資料表等功能還都未實現, 以後有機會吧。
最起碼以後想使用介面Api 可以自己搞了哈!

相關文章