Restful API接口设计

目录

API是什么

Restful是什么

使用原理

实例演示

 

API是什么

        API简称接口,就是预先定义的函数,目的是让应用程序或者开发人员具有访问指定网络资源的能力,而又无需关心关心访问的源码,或理解内部工作机制的细节。

Restful是什么

        不同的开发者对获取资源的接口设计,呈现出多战多样的接口,为了是接口具有规范性,能够要很好的可读性以及移植性,Restful风格就此产生。

        REST 是一种架构风格,表示的是Representational State Transfer 表现状态转移,客户端通过访问url来获得网络上的资源表征,获得资源表征来抓变应用的状态。网络中的所有的数据可分为(增删改查)四种操作,通过这四种操作获取到的则是分布在网络中的资源,将一切数据视为资源是REST与其他架构风格最大的不同之处。

使用原理

        REST约定所有的请求在网络中都是一种资源,对于不同的资源操作方式可以分为 Get、Put、Delete、Post动词进行区分。协议可以是https,http安全性高就是用https。

GET对应select:是从服务器查询,能够在服务器经过请求的参数区分查询的方式。
POST对应Create:在服务器新创建一个资源,调用insert操做。
PUT对应update操做:在服务器更新资源,调用update操做。
DELETE对应DELETE操做,从服务器删除资源,调用delete语句。

常见的状态码

200系列

请求成功

201 create 用户创建或修改数据成功

202 Accept有一个请求进入后台排队

204 No Content 删除数据成功

400 系列

用户发送的请求有错误,服务器没有进行新建或修改操作

401用户没有权限 用户名,密码错误

403 用户得到授权,但是访问被禁止

404 用户发出的请求是不存在的记录,服务器没有进行操作

406用户请求的格式不对

410 用户请求的资源被永久删除,不会被诶获得

500服务器错误,用户无法进行判断是否请求成功

        200 系列是成功的,400系列是客户端,500系列是服务端。

实例演示

1、新建springBoot项目

2、新建BookController类并新建RestFul风格代码。

3、/books/api/v1 :v1代表接口版本

4、增删改查的请求路径都是book,通过method = RequestMethod.PUT/GET/POST/DELETE进行区分。

package com.aaa.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/books/api/v1")
public class BookCtroller {
    @RequestMapping(value = "book", method = RequestMethod.PUT,produces = {"application/json;charset=UTF-8"})
    @ResponseBody
    public String putMethod() {
        return "putMethod";
    }
    @RequestMapping(value = "book", method = RequestMethod.DELETE, produces = {"application/json;charset=UTF-8"})
    @ResponseBody
    public String deleteMethod() {
        return "deleteMethod";
    }
    @RequestMapping(value = "book", method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"})
    @ResponseBody
    public String postMethod() {
        return "postMethod";
    }
    @RequestMapping(value = "book", method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
    @ResponseBody
    public String getMethod() {
        return "getMethod";
    }


}

5、前端页面Ajax通过不同的访问类型访问后端资源。

  $.ajax({
            url: "/books/api/v1/book",
            type: "DELETE",   // 根据业务需求,配置不同的动词 PUT/GET/POST/DELETE
            dataType: "json",
            success: function(data) {
                alert(data);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert("请求错误");
            }
        })

总结: RestFul风格约定,请求的都是网络资源,通过规范请求,按照http的put/get/delete/post等访问动词对接口路径进行区分,从而达到接口的风格统一等优点。


版权声明:本文为weixin_39327556原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。