首页 > 其他分享 >RESTful

RESTful

时间:2022-11-16 16:47:39浏览次数:63  
标签:请求 employees 接口 PathVariable RESTful id name

RESTful

 

1: API 概念

​ api 是应用程序接口,比如某个服务器对外暴露出具有某个功能的请求url,其他软件访问这个请求,得到想要的结果,这里面的请求url就是 API ,我们项目也是在开发这些接口。

另外一种方式是,某软件把某些功能打包成jar包(组件),其他软件引入这些jar包(通常说的 SDK就是这些放着你想要的软件功能的软件包),通过调用api从而得到想要的功能。

2: 前后端分离模式 概念, 优缺点

  • 概念

    前后端分离模式是一种开发模式,也是web应用的一种架构模式。指的是前后端通过约定好数据交互接口来进行开发。

    后端需要测试请求有没有问题的话,通过 postman 等接口测试工具即可

  • 优缺点

    • 责任清晰,前端不需要过多关注后端,后端不需要过多关注前端

      • 前后端开发人员通过 API 文档就能进行数据交流
      • 解耦,数据怎么展示,全部交给前端来处理,后端只负责提供数据。而前后端不分离的话,后端传给前端的Model,通常是通过hidden类型的Input来处理,或者是直接用模板技术生成,数据和展现并未分离。

3:restful风格相关概念, 资源, 状态, 请求方式, 响应值

  • 概念:代表一种软件架构风格,我们前后端日常遵循的一套接口规范

  • 资源:根据公司约定,一般是跟表名一致/实体类的复数形式,例如:employees

  • 请求方式:通过统一的接口来对资源执行各种操作,如:增 POST 删 DELETE 改 PUT 查 GET

  • 响应值:

    200 正常,服务器成功返回用户请求数据(GET)

    400 用户发出的请求有错误,服务器没有进行 POST 或 PUT 数据的操作

    401 用户没有权限(token、用户名、密码错误)

    403 表示用户得到授权(和401相反),但是访问是被禁止的

    404 用户发出的请求不存在(找不到页面)

    SpringBoot 中,如果启动类放错位置,也会导致404,原因在于启动类@SpringBootApplication里面的@ComponentScan注解,它是从启动类所在包开始,扫描当前包及其子级包下的所有文件。

    500 服务器内部错误

4:restful风格接口设计

  • 请求路径 (确定接口操作资源)
  • 请求方式
    • 增 POST
    • 删 DELETE
    • 改 PUT
    • 查 GET
  • 请求参数 (根据需求)
  • 响应值 (根据需求,返回 JSON 格式)

5:员工 crud 接口设计【必须掌握】

​ 参考项目: restful-demo

6:参数路径操作方式

​ 可以使用参数路径来获取唯一标识( 如 "/employees/{id}"),这样SpringMVC就能解析了,避免ambiguous

​ 接口获取路径参数,是通过@PathVariable注解

**@PathVariable注解使得控制器能够处理参数化的URL(将变量输入作为URL的一部分)**

**1. 如下代码,这里没有为@PathVariable设置值,方法的参数名会作为路径变量名,如下**
@Controller
public class EmployeeController {
    
    @RequestMapping(value = "/employees/{id}", method = RequestMethod.GET)
    @ResponseBody
    public Employee showEmployee(@PathVariable Long id,String name) {
        return new Employee(id,18,name); // http://localhost:8080/employees/2?name=张三
    }
}

​ 2. 形参和路径参数不一致,需要为@PathVariable设置值,如下

@Controller
@RequestMapping("/employees")
public class EmployeeController {
    
    @GetMapping("/{eid}")
    @ResponseBody
    public Employee showEmployee(@PathVariable("eid") Long id,String name) {
        return new Employee(id,18,name); // http://localhost:8080/employees/2?name=张三
    }
}

7:页面发起接口请求

​ 首先,在头标签引入 jQuery.js,然后编码

get 和 post 可以用 $.get(...) $.post(...) , 但 put 和 delete 需要用 $.ajax({...})

​ $.get(...) $.post(...) 的原理其实也是基于 $.ajax({...})

$(function(){
	// 查询全部角色
	$('#btn1').click(function(){
		$.get("/employees",function(data){
			console.log(data)
		})
  	});
    // 查询单个角色
	$('#btn2').click(function(){
        $.get("/employees/1",function(data){
            console.log(data)
        })
    });
    // 删除角色
    $('btn3').click(function(){
       $.ajax({
           url:"/employees/1"
           type:DELETE
           success:function(data){
           	 console.log(data)
         	}
       }) 
    });
})

8:restful风格接口简化开发

  • 类上面贴注解 @RequestMapping("/employees") , 则代表每个映射路径前都已经加上了 "/employees"
  • @RequestMapping(value = "/employees/{id}", method = RequestMethod.GET)
    可以简化为 @GetMapping("/employees/{id}"),其他请求方式同理
  • 类上面贴注解 @RestController,其实是 @Controller + @ResponseBody
@Controller
@RequestMapping("/employees")
public class EmployeeController {
    
    @GetMapping("/{id}")
    @ResponseBody
    public Employee showEmployee(@PathVariable Long id,String name) {
        return new Employee(id,18,name); // http://localhost:8080/employees/2?name=张三
    }
}

9:@RequestMapping 标签的属性

标签:请求,employees,接口,PathVariable,RESTful,id,name
From: https://www.cnblogs.com/LLW521/p/16896423.html

相关文章

  • 好用的PHP高性能多并发restful的HTTP Client
    ThisishighperformancecurlwrapperwritteninpurePHP.It'scompatiblewithPHP5.4+andHHVM.Noticethatlibcurlversionmustbeover7.36.0,otherwiseti......
  • SpringBoot 05: 接口架构风格 + RESTful接口风格
    接口定义API(ApplicationProgrammingInterface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口,或指软件系统不同组成部分衔接的约定)是用来提供应用程序与开......
  • 基于RESTful页面数据交互
    1.设置对静态资源的访问放行  2.前端页面通过一部提交访问后台控制器 ......
  • 2.Restful规范
    restful规范是一套主流的API规范,目的是将前后端统一规范。节省二者的沟通成本,提高开发效率,常见的规范有以下9种1.https协议在实际项目部署中,使用https协议代替http,目......
  • 4.RestFul和控制器
    4.RestFul和控制器1.控制器Controller控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现控制器负责解析用户的请求并将其转换为一个模型在Spr......
  • RESTful理解
    转自:https://www.zhihu.com/question/28557115,https://www.ruanyifeng.com/blog/2011/09/restful.html1.总结看Url就知道要什么看httpmethod就知道干什么(客户端通过四......
  • Restless API 与 Restful API
    Restful API:1.CURD(增删改查)由请求方式决定2.请求方式有:get/post/delete/put3.同一个路径可以进行多个操作RestlessAPI1.CURD(增删改查)不由请求方式决定2.请......
  • Spring Boot集成Restful Api在线文档接口调试工具 Swagger
    文章目录​​一、Swagger简介​​​​Swagger有什么用?​​​​二、环境准备​​​​三、构建SpringBoot工程​​​​四、引入Swagger依赖​​​​五、编写一个Test控制器​......
  • restful风格
    Restful是一种软件架构风格、设计风格,它既不是标准也不是协议,在设计客户端和服务端的接口时,可以使用也可以不使用,但使用了restful风格的接口会更加简洁、更有层次、更易于......
  • day-05 接口架构风格 —RESTful
    第五章接口架构风格—RESTful认识RESTREST(英文:RepresentationalStateTransfer,简称REST)一种互联网软件架构设计的风格,但它并不是标准,它只是提出了一组客户端和服......