springboot和vue:五、RESTful服务+HTTP状态码+swagger配置

2023-09-18 16:50:42

RESTful

RESTful的特点

  • 每一个URI代表一种资源
  • 客户端使用GET、POST、PUT、DELETE四种表示操作方式的动词对服务端资源进行操作:POST用于新建资源(也可以用于更新资源),PUT用于更新资源
  • 资源的表现形式是JSON或者HTML。
  • 客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都包含必需的信息。

RESTful API的特点

符合RESTful规范的Web API需要具备如下两个关键特性:

  • 安全性:安全的方法被期望不会产生任何副作用,如,当我们使用GET操作获取资源时,不会引起资源本身的改变,也不会引起服务器状态的改变。
  • 幂等性:幂等的方法保证了重复进行一个请求和一次请求的效果相同(并不是指响应总是相同的,而是指服务器上资源的状态从第一次请求后就不再改变了)。

HTTP状态码

  • 1xx:信息,通信传输协议级信息
  • 2xx:成功,表示客户端的请求已成功接受
  • 3xx:重定向,表示客户端必须执行一些其他操作才能完成其请求
  • 4xx:客户端错误(一般就是我们后端出错了)
  • 5xx:服务器错误

200:GET请求成功。
201:POST/PUT请求成功。
204:DELETE请求成功。
400:POST/PUT请求错误
401:用户没有权限
404:用户请求了不存在的资源。

用户管理模块API

在这里插入图片描述

swagger

pom.xml文件里新增:

在这里插入图片描述

注意:

在这里插入图片描述

在config包下新建Swagger2Config类

package com.itheima.reggie.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class Swagger2Config {
    @Bean
    public Docket createRestApi(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com"))
                .paths(PathSelectors.any()).build();
    }

private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("demo")
                .description("swagger-test")
                .build();
}
}

访问 http://127.0.0.1:8080/swagger-ui.html

在这里插入图片描述

相关注解

@Api(value=“xxx”) ,用在类头上
@ApiOperation(value=“xxx”),用在方法头上

更多推荐

数据在C++中的大小(占用内存)

C++中的大小(占用内存)摘要正文获取数据类型的大小注意结论摘要在C++中,了解数据类型的大小及其在内存中的占用情况对于编写高效的代码至关重要。本文将介绍C++中不同数据类型的大小以及如何计算它们所占用的内存空间。正文在C++中,每个数据类型都有不同的字节大小,这取决于编译器和操作系统的实现。下面是一些常见的数据类型及

fastjson反序列化漏洞(CVE-2017-18349)

文章目录fastjson序列化FastJson序列化操作反序列化漏洞原理漏洞复现(CVE-2017-18349)fastjsonfastjson是阿里巴巴开发的java语言编写的高性能JSON库,用于将数据在Json和JavaObject之间相互转换。它没有用java的序列化机制,而是自定义了一套序列化机制。提供两个主

Open Interpreter,一个让ChatGPT入驻你的电脑并获得联网能力成为贾维斯!

OpenInterpreter,一个让ChatGPT入驻你的电脑并获得联网能力成为贾维斯!介绍安装使用介绍最近看了Github最近大火的程序员终端大升级,发现了openinterpreter这个可以部署到本地命令行的对话AI,其依赖ChatGPT,可以使用联网功能和本地模型,很好地拓展了原有的功能并且能结合物理设备软硬

勇立潮头!高品质SFT语音数据实现Zero-Shot语音复刻大模型

文本到语音合成(TexttoSpeech,TTS)作为生成式人工智能(GenerativeAI或AIGC)的重要课题,在近年来取得了飞速发展。为了实现高效合成既自然又高质量的人类语音,有不少机构及企业都进行了相关项目的研究,包括微软亚洲研究院机器学习组和微软Azure语音团队去年推出的NaturalSpeech(htt

企业微信 API 接口调用教程:图文详解企业微信 API 的使用方法

本文通过access_token凭证的方式来讲解怎么调用企业微信API,并一步步介绍如何获取企业微信API的corpsecret、corpid、access_token凭证以及怎么向企业微信的应用发送消息。企业微信API在线地址为:概述-企业微信API,这个在线地址的项目你可以克隆到Apifox,以方便调试。话不多说,

基于深度学习的加密恶意流量检测

加密恶意流量检测研究目标定位数据收集数据处理基于特征分类算法的数据预处理基于源数据分类算法的数据预处理特征提取模型选择基于数据特征的深度学习检测算法基于特征自学习的深度学习检测算法训练和评估精确性指标实时性指标应用检验改进摘录自:MingfangZHAI,XingmingZHANG,BoZHAO.Surveyofenc

应用在苹果应用商店该如何进行优化

众所周知,ASO最大化的提高应用程序在商店中的可见性,其目标是获得更多的下载量,同时它也与下载的转化率有关。1、根据应用阶段追求不同的目标。它可以是有机增长或转化率的提高,获得更多安装并降低用户获取成本,增加收入或提高保留率,达到一定的参与水平或提高每日或每月活跃用户。2、应用的文本字段。应用名称需要包含一些主要关键词

PAT 1035 插入与归并

PAT1035插入与归并题目描述思路讲解代码展示题目描述思路讲解分析:先将i指向中间序列中满足从左到右是从小到大顺序的最后一个下标,再将j指向从i+1开始,第一个不满足a[j]==b[j]的下标,如果j顺利到达了下标n,说明是插入排序,再下一次的序列是sort(a,a+i+2);否则说明是归并排序。归并排序就别考虑中间

xen-timer

目的主要了解一下armtimerspec和xen项目中timer是怎么使用,如何实现的。同时也是对学习过程的一些记录。学习链接文章链接时间子系统http://www.wowotech.net/sort/timer_subsystemarmtimerspechttps://developer.arm.com/docume

阿里云服务器上CentOS 7.6使用rpm包安装MySQL 8.0.31

我这里下载的是最新版本,需要到MySQL官网最新版本下载地址。要是想要下载以前的版本需要到MySQL以前版本网址中。1)先使用wgethttps://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar(这个网址现在已经不

降低半导体金属线电阻的沉积和蚀刻技术

铜的电阻率取决于其晶体结构、空隙体积、晶界和材料界面失配,这在较小的尺度上变得更加重要。传统上,铜(Cu)线的形成是通过使用沟槽蚀刻工艺在低k二氧化硅中蚀刻沟槽图案,然后通过镶嵌流用Cu填充沟槽来完成的。不幸的是,这种方法产生具有显着晶界和空隙的多晶结构,这增加了铜线电阻。该工艺中还使用了高电阻TaN衬垫材料,以防止镶

热文推荐