Spring boot restful api demo

衣舞晨風發表於2017-05-29

1、Controller

package com.jiankunking.example.controller;

import com.jiankunking.example.model.Domain;
import com.jiankunking.example.model.Response;
import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;


/**
 * Created by jiankunking on 2017/5/29 16:55.
 * curd restful api demo
 */
@Controller
@RequestMapping(value = "/api/test")
public class CrudController {
    /**
     * 新增
     * POST /api/test
     * 引數:
     *  {
            name: 'name',
            visible: 1,
            services: ['xx','yy'],
        }
     * @return
     */
    @ResponseBody
    @RequestMapping(method = RequestMethod.POST)
    public Response insertTest(@RequestBody Domain domain,
                                            HttpServletRequest request) {
        return Response.ok("新增成功!");
    }

    /**
     * 修改
     * PUT /api/test/${id}
     * @param
     * @return
     */
    @ResponseBody
    @RequestMapping(value = "/{id}", method = RequestMethod.PUT)
    public Response updateTest(@PathVariable(value = "id") String id, @RequestBody Domain domain,
                                            HttpServletRequest request) {
        return Response.ok("修改成功!");
    }

    /**
     * 刪除
     * DELETE /api/test/${id}
     * @param id
     * @return
     */
    @ResponseBody
    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
    public Response deleteTestById(@PathVariable(value = "id") String id) {
        return Response.ok("刪除成功!");
    }

    /**
     * 查詢
     * GET /api/test
     * 引數:{ sysId: '1' }
     * @return
     */
    @ResponseBody
    @RequestMapping(method = RequestMethod.GET)
    public Response getTestBySysId(@RequestParam(name = "sysId", required = true) String sysId) {
        HashMap map = new HashMap();
        map.put(1, 1);
        return Response.ok(map);
    }

    /**
     * 查詢
     * GET /api/test/${id}
     * @return
     */
    @ResponseBody
    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
    public Response getTestInfoByModuleId(@PathVariable(value = "id") String id) {
        HashMap map = new HashMap();
        map.put(2, 2);
        return Response.ok(map);
    }
}

2、entity

package com.jiankunking.example.model;

import lombok.Data;

import java.util.Date;

/**
 * Created by jiankunking on 2017/5/29 17:00.
 */
@Data
public class Domain {
    private String name;
    private int visible;
    private String[] services;
    private Date createTime;
}
package com.jiankunking.example.model;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * Created by jiankunking on 2017/5/9 13:47.
 * 該類已簡化
 */
public class Response<T> implements Serializable {
    private static final long serialVersionUID = -750644833749014618L;
    private T data;

    @Getter
    @Setter
    private Boolean isSuccess;

    public Response() {
        this.setIsSuccess(true);
    }

    public T getData() {
        return this.data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public static <T> Response<T> ok(T data) {
        Response resp = new Response();
        resp.setData(data);
        resp.setIsSuccess(true);
        return resp;
    }

    public static <T> Response<T> fail(Integer code, String error) {
        Response resp = new Response();
        //resp.setCode(code);
        //resp.setMsg(error);
        resp.setIsSuccess(false);
        return resp;
    }
}

3、postman 細節

這裡寫圖片描述

這裡寫圖片描述

4、原始碼下載

http://download.csdn.net/detail/xunzaosiyecao/9855449

作者:jiankunking 出處:http://blog.csdn.net/jiankunking

相關文章