java写http接口,java如何写一个http接口?实例详解
在大家工作中,经常会遇到要写接口的情况,并且最常用的就是http接口,可是对于一个新手Java人员来说,写一个http接口还是比较困难的,那么下面我们就用实例给大家讲解一下。
一、搭建项目
首先我们先搭建一个SpringBoot项目,如何搭建这里就不讲了,引入相关的依赖:
org.springframework.boot <
artifactId > spring - boot - starter <
/dependency> <
dependency >
org.projectlombok <
artifactId > lombok <
optional > true <
/dependency> <
dependency >
org.springframework.boot <
artifactId > spring - boot - starter - test <
scope > test <
/dependency> <
dependency >
org.springframework.boot <
artifactId > spring - boot - starter - web <
/dependency>
二、写一个通用结果对象
一个接口的返回信息应该至少包含以下几项:
1、结果编码
2、结果信息
3、返回数据
因此新建一个类来记录返回的结果集Result :@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result
{
private int code;
private String message;
private Object data;
}
其中结果编码和结果信息需要是统一的,这里用枚举类型最合适,新建一个枚举类ResponseCodepublic 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写http接口,java如何写一个http接口?实例详解相关推荐
- java构造方法重载_Java 重载、重写、构造函数的实例详解
Java 重载.重写.构造函数的实例详解 方法重写 1.重写只能出现在继承关系之中.当一个类继承它的父类方法时,都有机会重写该父类的方法.一个特例是父类的方法被标识为final.重写的主要优点是能够定 ...
- java.exe 安装程序_java实现可安装的exe程序实例详解
java实现可安装的exe程序实例详解 通过编写Java代码,实现可安装的exe文件的一般思路: 1.在eclipse中创建java项目,然后编写Java代码,将编写好的Java项目导出一个.jar格 ...
- java 获取oracle表结构_Java导出oracle表结构实例详解
Java导出oracle表结构实例详解 发布于 2020-7-20| 复制链接 摘记: Java导出oracle表结构实例详解最近用到的,因为plsql是收费的,不让用,找了很多方法终于发现了这个. ...
- java list 重复数据_java 查找list中重复数据实例详解
java 查找list中重复数据实例详解 需求: 查找一个List集合中所有重复的数据,重复的数据可能不止一堆,比如:aa, bb, aa, bb, cc , dd, aa这样的数据.如果有重复数据, ...
- java生成字符串数组_Java 生成随机字符串数组的实例详解
Java 生成随机字符串数组的实例详解 利用Collections.sort()方法对泛型为String的List 进行排序.具体要求: 1.创建完List之后,往其中添加十条随机字符串 2.每条字符 ...
- android java 写文件操作_Android编程之文件的读写实例详解
本文实例分析了Android编程之文件的读写方法.分享给大家供大家参考,具体如下: Android的文件读写与JavaSE的文件读写相同,都是使用IO流.而且Android使用的正是JavaSE的IO ...
- java服务端异步处理机制_Java异步处理机制实例详解
通常同步意味着一个任务的某个处理过程会对多个线程在用串行化处理,而异步则意味着某个处理过程可以允许多个线程同时处理.下面我们就来看看有关异步处理的详细内容. 异步通常代表着更好的性能,因为它很大程度上 ...
- java web 在线客服_WebSocket实现客服聊天系统实例详解
WebSocket实现简单客服聊天系统 一 需求 一个多商家的电商系统,比如京东商城,不同商家之间的客服是不同的,所面对的用户也是不同的.要实现这样一个电商系统的客服聊天系统,那该系统就必须是一个支持 ...
- java中csv文件怎么制作_Java生成CSV文件实例详解
本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils ...
- java运行时_java编译时与运行时概念与实例详解
Java编译时与运行时很重要的概念,但是一直没有明晰,这次专门博客写明白概念. 基础概念 编译时 编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只 ...
最新文章
- 安装asp.net mvc4后mvc3项目编译报错
- Sword STL迭代器prev,next相关函数
- 跳一跳python源码下载_微信跳一跳python代码实现
- 在翻译群里看到的一个句子的翻译
- 左神算法:二叉树的按层打印与ZigZag打印(Java版)
- Java学习笔记——模块化
- 安庆机器人编程选_安庆市首届中小学机器人创客竞赛举行 460名选手比智慧拼创新 科技感满满!...
- Django之模板层
- 华为软件开发云又出新服务:开源镜像站正式上线,致敬开源,使能开发者!
- 4.2 无线传感器网络传输层协议
- php sns 源码,全网首发-LaySNS高仿资源网源码免费分享
- KEIL MDK平台 S3C2440 C语言软件仿真
- Shell中IF大于等于小于
- 英文字母字符简便替换法
- 寄存器、缓存、内存、硬盘、存储器的理解
- sudo chmod -R 777
- 阿里云后台部署全过程-3-mysql、supervisor初始化
- [行人重识别论文阅读]无监督学习发展与小结
- 不要被新媒体营造的焦虑所绑架(咪蒙类账号的不道德)
- FreeRTOS软件定时器 基于STM32