用SSM搭建restful API协议框架

基于Maven web项目,用SSM框架(Spring、SpringMVC、Mybatis)搭建restful API协议框架,支持四种HTTP协议方法:POST、GET、PUT、DELETE等操作。
客户端通过HTTP协议方法进行URL访问,获得相应的接口服务或json数据包。
Web端可以通过jQuery解析获得的Json数据包(可能需要注意安全性,如:客户端加入token,将API_token、请求时间、请求方法名、请求客户端信息等等的信息加密作为token,在服务器端验证token是否正确,与请求时间的间隔是否在有效期内),IOS和Andriod也可以采用第三方库来解析Json数据包。

先从网上找一个SSM的模板,然后配置restful API的相关设置。
1、pom.xml中加入依赖

        <dependency>
            <groupId>ognl</groupId>
            <artifactId>ognl</artifactId>
            <version>2.6.9</version>
        </dependency>
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.13</version>
        </dependency>

2、springmvc-servlet.xml中加入对json的支持

<!-- 输出对象转JSON支持 -->
    <bean id="jsonConverter"
        class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="stringConverter" />
                <ref bean="jsonConverter" />
            </list>
        </property>
    </bean>

3、编写异常处理
StatusCode状态码domain:

public class StatusCode {
    private int statuscode; 
    private String msg;     

    public StatusCode(int statuscode, String msg) {
        this.statuscode = statuscode;
        this.msg = msg;
    }

    public int getStatuscode() {
        return statuscode;
    }
    public void setStatuscode(int statuscode) {
        this.statuscode = statuscode;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
}

定义一个异常类,使用和其对应的状态码:

import com.XXXXX.domain.StatusCode;

public class ParamsErrorException extends Exception {
    //无效的参数 
    //错误码:10000 错误信息:invalid parameters
    StatusCode sc = new StatusCode(10000, "invalid parameters");

    public ParamsErrorException(){
    }

    public ParamsErrorException(String msg){
        sc.setMsg(msg);
    }

    public StatusCode getSc() {
        return sc;
    }
}

提供给API用户的状态错误码:

响应状态码信息备注
200OK请求成功
10000invalid parameters无效的参数

注意:

这里的状态码和http中的状态码不一样,这是放在json包中的,目的是告诉API调用者出现了什么错误。

4、编写Controller

import net.sf.json.JSONObject;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.xxxxx.domain.StatusCode;
import com.xxxxx.domain.Test;
import com.xxxxx.exception.ParamsErrorException;
import com.xxxxx.exception.QueryFailedException;
import com.xxxxx.service.TestService;

@Controller
public class TestController{
    @Resource
    TestService testService;

    final private StatusCode successcode = new StatusCode(200, "OK");

    @RequestMapping(value = "/test", method = RequestMethod.GET)
    public @ResponseBody
    JSONObject responseGET(String id) {
        Test test = null;
        JSONObject json = new JSONObject();  
        try{
            if(id==null) throw new ParamsErrorException();
            test = testService.get(id);
            if(test==null) throw new QueryFailedException();
            json.putAll(json.fromObject(successcode));
            json.put("test",test);
            return json;
        }catch(ParamsErrorException e){
            return json.fromObject(e.getSc());
        }catch (QueryFailedException e) {
            return json.fromObject(e.getSc());
        }
    } 
}

5、Postman测试
点击前往Postman官网下载,Postman提供很多版本的选择合适的下载。

http请求(GET方法)URL地址:
http://xxx/test?id=0b117007-6de6-4763-b332-cb109a9e7bfe

返回Json包:
{
“msg”: “OK”,
“statuscode”: 200,
“test”: {
“createTime”: “2017-6-9”,
“id”: “6157f400-97a2-4e34-a55f-0aaf433f3578”,
“remark”: “test”,
“username”: “test”
}
}

请求成功,返回如下信息
响应状态码 响应信息
200 OK

如没有id信息将返回如下信息:
响应状态码 响应信息
10000 invalid paramters

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SSM框架(Spring+SpringMVC+MyBatis)是一种常用的Java企业级框架,它能够将各层模块进行解耦,并使用注入和依赖注入等技术实现松耦合的开发。 RESTful是一种软件架构风格,它通过基于HTTP的标准请求方法(GET、POST、PUT、DELETE等)来进行资源的增删改查操作。它具有简洁、易于理解和扩展性好的特点。 Spring Boot是一种基于Spring框架的快速开发框架,它封装了很多开发常用的依赖和配置,极大地简化了Spring应用的配置过程。 而在利用Idea开发SSM框架RESTful风格的Spring Boot项目时,可以按照以下步骤进行: 1. 首先,创建一个空的Spring Boot项目,可以在Idea中使用Spring Initializer快速生成。 2. 在pom.xml文件中添加所依赖的SSM框架、连接数据库的相关依赖以及其他需要的依赖。 3. 在src/main/java目录下创建主启动类,并添加相关注解,如@SpringBootApplication等。同时,创建并配置application.properties或application.yml文件来设置项目的相关配置信息。 4. 创建用于处理网页请求的Controller、用于数据传输的DTO类、实体类等。 5. 利用MyBatis创建DAO和Mapper接口,同时编写相应的Mapper.xml文件,使用注解或者XML方式配置SQL语句。 6. 创建Service层的接口和实现类,用于进行业务处理,并调用DAO层的方法来访问数据。 7. 在Controller层进行相关URL的映射和请求处理,实现RESTful风格的API接口,并调用Service层的方法。 8. 对项目进行测试和调试,可以使用Postman等工具进行接口的测试,验证项目的正确性。 总的来说,利用SSM框架RESTful风格的开发,结合Spring Boot和Idea等工具,可以快速搭建和开发Java项目,提高开发效率和可维护性。同时,也能为项目提供稳定的运行环境和良好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值