我的java接口开发总结(个人总结,仅供参考)有代码和文档

项目需要开发几个接口让客户调用,用来获取平台上的设备数据(基础数据、应急数据、检查设备数据)。根据数据类型不同简单划分了三个接口来获取三类不同的数据。

第一步确定请求方式、验证方式。

1、个人比较喜欢post请求方式,请求参数和响应参数为json类型,这样提取某个需要的参数会比较简单。

2、验证方式一开始考虑的是直接写死几个固定String字符串来进行验证,效果是达到了,但是感觉上会比较low,而且验证不具备时效性。之后参考了下网上资料,决定采取获取token的方式来进行验证,token失效设定为30分钟有效。对方第一次通过接口获取token值,第二次请求带上token值和其他请求参数来获取参数。token放在redis中,设定保存30分钟。

第二步根据项目层级设计接口请求地址,详细请求参数、响应参数。

1、确定接口请求地址(根据自己项目实际来设计)。

2、设计请求参数,第一次获取token,设计请求参数userName、type、data三个来验证,正确返回token值,错误给出错误提示,如:参数不正确、缺少参数等。第二次获取数据,设计请求参数token、type、time,其中time为非必须参数,不填,则获取全部数据;填,则获取当日新建或者更新数据,用来获取增量数据。

3、设计相应参数,其中公共相应参数有status(响应状态,成功/失败),error(错误信息),其他参数有token(验证信息)、totalNumber(响应总消息条数)、info(消息集合)等。

第三步测试已经写好的接口。

1、根据自己的设计利用postman来进行测试,首先是测试正常正确状态下,是否可以访问,并获取想要的参数。如果可以,那么大部分的工作是完成了;如果不行,则查看代码、路径、参数、项目配置等,排查原因。

2、已经可以正常访问,现在就是主动模拟可能出现错误的情况,来编写error错误提示信息,如:参数不多、参数不全、日期不对等情况,在代码里面给出响应的提示。

第四步根据第三部的测试来完善代码

1、根据第三步的参数结果,可能出现的错误情况,来完善错误提示部分的代码。

2、建议在finally中,写一个“系统错误”的提示,应对网络或者其他一些突发情况。还有一些流的关闭,链接的断开等都放在里面。

3、从头到尾走不一遍自己的代码逻辑,看看有没有不合理、不规范的地方,及时调整(可参考一些代码规范)。

第五步编写接口文档

根据已经开发好接口来编写接口文档,交付客户。需要明确请求地址、请求方式、请求参数类型、响应参数类型、具体的请求参数及取值(规则)、请求参数实例、响应参数数据层级和参数名(便于获取其中的参数值)、响应参数实例、可能出现的错误情况及应对措施、开发人员的联系方式(便于后期客户调试交流,这一步根据自身实际取舍)等。

第六步提交测试

部署项目,提交接口文档给公司测试人员进行系统测试。通过则提交产品经理;不通过则进行修改,直至通过。

 

以上是我的java接口开发总结,纯属个人偏好,不喜勿喷,共同学习进步。

下面是一段java实例和文档实例,仅供参考。

/**
     * 获取token
     * 请求方式POST
     * 数据类型JSON
     * 请求参数:userName=userName,type=type,dataSource=dataSource
     * 响应参数:
     * hhj
     */
    @RequestMapping(value = "/gettoken.do",method = RequestMethod.POST,consumes = { "application/json" }, produces = "application/json;charset=utf-8")
    @ResponseBody
    public JSONObject getToken(@RequestBody JSONObject json) {
        
        JSONObject response=new JSONObject();
        Jedis jedis = pool.getResource();
        try {
            //判断对方身份
            if(json.has("userName")&&
               json.has("type")&&
               json.has("dataSource")&&
               "userName".equals(json.getString("userName"))&&
               "type".equals(json.getString("type"))&&
               "dataSource".equals(json.getString("dataSource"))){
                
                if(jedis.exists("yichun@token")) {//存在token直接读取
                    token=jedis.get("yichun@token");
                    status="success";
                    response.put("status", status);
                    response.put("token", token);
                }else {
                    Token tokenInfo = TokenUtil.createToken("yichun");//不存在则重新生成并存进redis中
                    token=tokenInfo.getToken();
                    jedis.set("yichun@token", token, "NX", "EX", 1800);;//将token存进redis内30分钟失效
                    status="success";
                    response.put("status", status);
                    response.put("token", token);
                }
            }else {
                status="failure";
                error="验证信息错误";
                response.put("status", status);
                response.put("error", error);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if(status==null) {
                status="failure";
                error="未知错误,请稍后重试或联系系统管理员";
                response.put("status", status);
                response.put("error", error);
            }
            jedis.close();
        }
        return response;
    }

1、获取token

接口名称:获取token

接口地址:项目网址+/gettoken.do

请求方法:post 

请求数据类型:application/json 

响应类型:application/json 

 

请求参数 

参数名称

是否必须

数据类型

描述

userName

string

用户名(userName)

type

string

接口类型(type)

dataSource

string

数据来源(dataSource)

 

实例:

{

"userName":"userName",

"type":"type",

"dataSource":"dataSource"

}

响应参数

     

参数名称

是否必须

数据类型

描述

status

string

响应状态

(success-成功、failure-失败)

token

string

验证标识

(30分钟失效)

error

string

错误信息

 

实例:

{

    "status": "success",

    "token": "6C0A9C862F188FE278C8B3EA81D3FD44"

}

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值