java如何写一个http接口?实例详解

在大家工作中,经常会遇到要写接口的情况,并且最常用的就是http接口,可是对于一个新手Java人员来说,写一个http接口还是比较困难的,那么下面我们就用实例给大家讲解一下。

一、搭建项目

首先我们先搭建一个SpringBoot项目,如何搭建这里就不讲了,引入相关的依赖:

<dependency >
    <groupId>org.springframework.boot</groupId> <
    artifactId > spring - boot - starter < /artifactId> <
    /dependency> <
    dependency >
    <groupId>org.projectlombok</groupId> <
    artifactId > lombok < /artifactId> <
    optional > true < /optional> <
    /dependency> <
    dependency >
    <groupId>org.springframework.boot</groupId> <
    artifactId > spring - boot - starter - test < /artifactId> <
    scope > test < /scope> <
    /dependency> <
    dependency >
    <groupId>org.springframework.boot</groupId> <
    artifactId > spring - boot - starter - web < /artifactId> <
    /dependency>

二、写一个通用结果对象

一个接口的返回信息应该至少包含以下几项:

1、结果编码

2、结果信息

3、返回数据

因此新建一个类来记录返回的结果集Result :

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result
{
    private int code;
    private String message;
    private Object data;
}

其中结果编码和结果信息需要是统一的,这里用枚举类型最合适,新建一个枚举类ResponseCode

public enum ResponseCode
{
    // 系统模块
    SUCCESS(0, "操作成功")
        , ERROR(1, "操作失败")
        , SERVER_ERROR(500, "服务器异常"),
        // 通用模块 1xxxx
        ILLEGAL_ARGUMENT(10000, "参数不合法")
        , REPETITIVE_OPERATION(10001, "请勿重复操作")
        , ACCESS_LIMIT(10002, "请求太频繁, 请稍后再试")
        , MAIL_SEND_SUCCESS(10003, "邮件发送成功"),
        // 用户模块 2xxxx
        NEED_LOGIN(20001, "登录失效")
        , USERNAME_OR_PASSWORD_EMPTY(20002, "用户名或密码不能为空")
        , USERNAME_OR_PASSWORD_WRONG(20003, "用户名或密码错误")
        , USER_NOT_EXISTS(20004, "用户不存在")
        , WRONG_PASSWORD(20005, "密码错误"), ;
    ResponseCode(Integer code, String msg)
    {
        this.code = code;
        this.msg = msg;
    }
    private Integer code;
    private String msg;
    public Integer getCode()
    {
        return code;
    }
    public void setCode(Integer code)
    {
        this.code = code;
    }
    public String getMsg()
    {
        return msg;
    }
    public void setMsg(String msg)
    {
        this.msg = msg;
    }
}

三、接口编写

上面的两个类可以作为其他项目的通用类,要写接口时直接放代码就行,接下来写一个接口测试一下:

新建一个ResponseController

@RestController
public class ResponseController
{
    @RequestMapping(value = "/getData", method = RequestMethod.GET)
    public Result getData()
    {
        Mapmap = new HashMap < > ();
        map.put("name", "javayz");
        map.put("age", "23");
        MapchildMap = new HashMap < > ();
        childMap.put("home", "浙江");
        childMap.put("job", "java");
        map.put("childMap", childMap);
        Result result = new Result(ResponseCode.SUCCESS.getCode(), ResponseCode.SUCCESS.getMsg(), map);
        return result;
    }
}

这里展示的是通过Map集合插入数据,最后返回Result,调用结果如下:

{
    "code": 0
    , "message": "操作成功"
    , "data":
    {
        "name": "javayz"
        , "childMap":
        {
            "job": "java"
            , "home": "浙江"
        }
        , "age": "23"
    }
}

除了使用Map传递数据之外,还可以通过对象来传递数据,新建两个类分别是User和UserDetail:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User
{
    private String name;
    private String age;
    private UserDetail userDetail;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserDetail
{
    private String home;
    private String job;
}

新写一个Get请求的接口,在接口中用对象传递数据

@RequestMapping(value = "/getData2", method = RequestMethod.GET)
public Result getData2()
{
    UserDetail userDetail = new UserDetail("浙江", "java");
    User user = new User("javayz", "23", userDetail);
    Result result = new Result(ResponseCode.SUCCESS.getCode(), ResponseCode.SUCCESS.getMsg(), user);
    return result;
}

调用接口后返回值如下:

{
    "code": 0
    , "message": "操作成功"
    , "data":
    {
        "name": "javayz"
        , "age": "23"
        , "userDetail":
        {
            "home": "浙江"
            , "job": "java"
        }
    }
}

关于java写一个http接口的方法我们就分享到这,从搭建项目到接口编写我们都详细的写了,大家可以多操作几次就会熟悉了,最后大家如果想要了解更多java实例知识,敬请关注奇Q工具网。

推荐阅读:

java开发常用四大框架有哪些?

java调用函数怎么写?

java怎么做软件?java开发要注意什么?