简单几步,实现Restful API:
1、引入相关的依赖:
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
2、配置文件application.yml中指定tomcat的端口:
- server:
- port: 8082
3、定义api的返回码:
- package com.xjj.web.result;
- public enum ResultCode {
- /** 成功 */
- SUCCESS("200", "成功"),
- /** 没有登录 */
- NOT_LOGIN("400", "没有登录"),
- /** 发生异常 */
- EXCEPTION("401", "发生异常"),
- /** 系统错误 */
- SYS_ERROR("402", "系统错误"),
- /** 参数错误 */
- PARAMS_ERROR("403", "参数错误 "),
- /** 不支持或已经废弃 */
- NOT_SUPPORTED("410", "不支持或已经废弃"),
- /** AuthCode错误 */
- INVALID_AUTHCODE("444", "无效的AuthCode"),
- /** 太频繁的调用 */
- TOO_FREQUENT("445", "太频繁的调用"),
- /** 未知的错误 */
- UNKNOWN_ERROR("499", "未知错误");
- private ResultCode(String value, String msg){
- this.val = value;
- this.msg = msg;
- }
- public String val() {
- return val;
- }
- public String msg() {
- return msg;
- }
- private String val;
- private String msg;
- }
4、定义api的返回对象格式:
- package com.xjj.web.result;
- public class JsonResult {
- private String code;
- private String message;
- private Object data;
- public JsonResult() {
- this.setCode(ResultCode.SUCCESS);
- this.setMessage("成功!");
- }
- public JsonResult(ResultCode code) {
- this.setCode(code);
- this.setMessage(code.msg());
- }
- public JsonResult(ResultCode code, String message) {
- this.setCode(code);
- this.setMessage(message);
- }
- public JsonResult(ResultCode code, String message, Object data) {
- this.setCode(code);
- this.setMessage(message);
- this.setData(data);
- }
- public String getCode() {
- return code;
- }
- public void setCode(ResultCode code) {
- this.code = code.val();
- }
- public String getMessage() {
- return message;
- }
- public void setMessage(String message) {
- this.message = message;
- }
- public Object getData() {
- return data;
- }
- public void setData(Object data) {
- this.data = data;
- }
- }
5、创建controller,处理api请求:
- /**
- * 管理接口:登录……等
- * @author XuJijun
- *
- */
- @RestController
- @RequestMapping("/api/admin")
- public class AdminController {
- //@Value("${spring.profiles}")
- //private String env;
- private String userName = "admin";
- private String pw = "pword";
- /**
- * 登录
- * @param response:用于保存token到cookie中
- * @param map:包含userName和password
- * @return
- */
- @RequestMapping("/login")
- public JsonResult login(HttpServletRequest request, HttpServletResponse response, @RequestParam Map<String, String> map) {
- if(userName.equals(map.get("userName")) && pw.equals(map.get("password"))){
- return new JsonResult(ResultCode.SUCCESS, "登录成功!", null);
- }else {
- return new JsonResult(ResultCode.NOT_LOGIN, "登录失败!", null);
- }
- }
- }
浏览器中访问:http://localhost:8082/api/admin/login?userName=admin&password=pword
返回结果:
- {"code":"200","message":"登录成功!","data":null}
测试成功!