SpringBoot-20-REST API接口

一、REST 简介

1.接口的意义:
系统关联基于接口来实现,接口测试将复杂的系统关联简化
接口功能比较单一,能更好的进行[测试覆盖],容易实现[自动化持续集成]
单元测试之后,UI测试之前,接口测试比单元测试粒度粗

2.Web Service:
一种跨编程语言和操作平台的远程调用技术
实现方式:SOAP和REST

3.SOAP:
简单对象访问协议(Simple Object Acsess Protocol)
数据交换的一种协议,轻量级、简单的、基于Xml的协议

4.REST:
表示性状态转换(Representational State Transfer)
一种系统(软件)架构风格(非标准),一种分布式系统的应用层解决方案
安全性 SOAP>REST、效率和易用性 REST>SOAP、成熟度 SOAP>REST

5.RESTFUL:
RESTFUL 是REST的形容词
RESTFUL API 是指REST风格的接口
RESTFUL与REST、rest、resetful、RESTful意义上等同


二、RESTFUL接口
1.优势与特点
实现Client和Server端解耦,可降低开发的复杂性,提高系统的可伸缩性

资源为核心思想(面向资源的CRUD):HTTP[传输协议]升级为[应用传输协议]
创造资源C:POST      
获取资源R:GET          仅获取资源头信息:HEAD
更新资源U:PUT          更新资源部分属性:PATCH (使用较少,一般用POST代替)
删除资源D:DELETE

幂等性:发送一次和多次请求引起的[边界效应]一致
安全性:仅获取书籍,不具有[边界效应]GET、HEAD、OPTIONS
2.REST接口风格:
协议:使用https协议
域名:https://api.toly1994.com
版本控制:将版本号放在URL或Head二中
路径:只能包含名词,不能用动词
过滤信息:?limit=10      ?offset=10      ?page=1         ?sortby=name
Hypermedia API :在返回结果中提供其他连接资源,连向其他API
验证:确定身份
授权:权限设置
通用返回结果:如:
    {
    "msg":"uri not found",
    "code":0001,
    "data":null,
    "request":"GET\/v2\/photo\/132"
    }
9414344-51660f1e611535f9.png
常见的Http状态码.png

三、代码测试:基于SpringBoot-07-之数据库JPA(CRUD)修改
测试使用的RESTFUL接口一览:
http://localhost:8080/api/sword: GET 获取所用剑的信息
http://localhost:8080/api/sword: POST 新建一把剑
http://localhost:8080/api/sword/26: GET 获取一把指定id的剑信息
http://localhost:8080/api/sword/40: PUT 修改一把指定id的剑信息
http://localhost:8080/api/sword/39: DELETE 删除指定id的剑
http://localhost:8080/api/sword/21/name: GET 查询指定id的剑的名称
1.GET 获取所用剑的信息 http://localhost:8080/api/sword
/**
 * 查询所有:GET http://localhost:8080/api/sword
 *
 * @return 查询所有
 */
@GetMapping(value = "/sword")
public ResultBean findAllToJson() {
    return ResultHandler.ok(mSwordRepository.findAll());
}
9414344-b9e0327cb2950053.png
列出所有.png

2.POST 新建一把剑 http://localhost:8080/api/sword
/**
 * 新建一把剑:POST GET http://localhost:8080/api/sword
 * @param sword 剑
 * @return 剑
 */
@PostMapping(value = "/sword")
public ResultBean addOne(@ModelAttribute Sword sword) {
    Sword save = mSwordRepository.save(sword);
    return ResultHandler.ok(save);
}
9414344-d836d82211b17127.png
添加一个.png

3.GET 获取一把指定id的剑信息 http://localhost:8080/api/sword/26
/**
 * 根据id查询 GET http://localhost:8080/api/sword/26
 *
 * @param id id
 * @return 剑
 */
@GetMapping(value = "/swords/find/{id}")
public ResultBean find(@PathVariable("id") Integer id) {
    return ResultHandler.ok(mSwordRepository.findById(id).get());
}
9414344-9dcff175351f236f.png
查询一个.png

4.PUT 修改一把指定id的剑信息 http://localhost:8080/api/sword/26
/**
 * 根据id更新   PUT http://localhost:8080/api/sword/40
 *
 * @param id id
 * @return 剑
 */
@PutMapping(value = "/sword/{id}")
public ResultBean update(@PathVariable("id") Integer id, @ModelAttribute Sword sword) {
    return ResultHandler.ok(mSwordRepository.save(sword));
}
9414344-906b78c98d4858f3.png
更新一个.png

5.DELETE 删除指定id的剑 http://localhost:8080/api/sword/39
/**
 * 根据id删除 DELETE http://localhost:8080/api/sword/39
 *
 * @param id id
 */
@DeleteMapping(value = "/sword/{id}")
public ResultBean insert(@PathVariable("id") Integer id) {
    ResultBean resultBean = find(id);
    mSwordRepository.deleteById(id);
    return resultBean;
}
9414344-c3f0515a9cd474e6.png
删除一个.png

6.GET根据id查询剑的名称: http://localhost:8080/api/sword/21/name
/**
 * 根据id查询剑的名称 GET http://localhost:8080/api/sword/21/name
 *
 * @param id id
 * @return 剑
 */
@GetMapping(value = "/sword/{id}/name")
public ResultBean findName(@PathVariable("id") Integer id) {
    return ResultHandler.ok(mSwordRepository.findById(id).get().getName());
}
9414344-9025e041ea3c1115.png
查询一个名称.png

后记:捷文规范
1.本文成长记录及勘误表
项目源码日期备注
V0.1--无2018-10-19SpringBoot20-REST API接口
2.更多关于我
笔名QQ微信爱好
张风捷特烈1981462002zdl1994328语言
我的github我的简书我的CSDN个人网站
3.声明

1----本文由张风捷特烈原创,转载请注明
2----欢迎广大编程爱好者共同交流
3----个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正
4----看到这里,我在此感谢你的喜欢与支持

Spring Boot是一个用于快速开发Spring应用程序的框架,其中包含了很多的自动化配置,它建立在Spring之上,使得开发人员能够更快、更轻松地开发出高品质的应用程序。Spring Boot通过提供默认配置和快速应用程序启动来简化了开发人员的开发流程,同时也提供了一种更加灵活的方式开发RESTful API。 下面是如何使用Spring Boot编写RESTful API的步骤: 1. 第一步是创建Spring Boot项目。你可以使用Spring Initializr来创建练习项目。在项目创建的时候,你需要添加web依赖,因为它是构建RESTful API所必须的。 2. Spring Boot通过自动配置来创建一个内嵌的Tomcat服务器,你不需要独立安装Tomcat服务器。在创建完项目之后,Spring Boot会创建一个默认的Application类,你可以在这里创建一个RestController来处理HTTP请求。使用@RestController注释指示Spring将该类视为RESTful资源的控制器。这样,Spring Boot将会根据类的注释自动配置现有的服务,包括它所需要的绑定。 3. 我们可以在类中使用@GetMapping、@PostMapping、@DeleteMapping和@PutMapping注释来定义RESTful路由。这些注释用于处理HTTP GET、POST、DELETE和PUT请求。我们可以在这里定义要接受的值、路径和它返回的内容。 4. 在创建完RESTful API之后,你需要使用一些测试工具来测试它是否工作。你可以使用Postman、CURL或者浏览器来测试API是否可用。 总之,Spring Boot让编写RESTful API变得更加容易和高效。这个框架可以自动化设置Web服务、路由和其他服务,使得服务器开发人员能够在更短的时间内开发出高质量的RESTful API
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值