【微服务架构】-【接口设计】-使用SpringBoot开发Restful服务实现增删改查功能

使用SpringBoot开发Restful服务实现增删改查功能

简介:

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。这篇文章主要介绍了基于SpringBoot开发一个Restful服务,实现增删改查功能,需要的朋友可以参考下

技术与业务:

技术

springboot、restful接口风格

业务

  1. springboot快速构建spring项目开发与部署。

  2. restful风格让API 设计更规范,用于 Web 数据接口的设计,语义更明确

    请求URL对应着请求资源的地址

    操作资源的动词通常就是五种 HTTP 方法,对应 CRUD 操作。

    restful风格的API主要涉及如下设计:

    1. URL设计:API 的 URL,是 五种 HTTP 方法作用的对象。它应该是名词 .

      实际项目中使用动宾短语较多:例如 /getAllCars

    2. 状态码设计:包括 HTTP 状态码和数据两部分

      HTTP 状态码就是一个三位数,分成五个类别。

      • 1xx:相关信息
      • 2xx:操作成功
      • 3xx:重定向
      • 4xx:客户端错误
      • 5xx:服务器错误

      这五大类总共包含100多种状态码,覆盖了绝大部分可能遇到的情况。每一种状态码都有标准的(或者约定的)解释,客户端只需查看状态码,就可以判断出发生了什么情况,所以服务器应该返回尽可能精确的状态码。

  3. 数据传输格式

    请求与响应都为JSON格式

    服务器响应时 API 返回的数据格式,不应该是纯文本,而应该是一个 JSON 对象,因为这样才能返回标准的结构化数据。所以,服务器响应的 HTTP 头的Content-Type属性要设为application/json

    客户端请求时,也要明确告诉服务器,可以接受 JSON 格式,即请求的 HTTP 头的ACCEPT属性也要设成application/json

问题场景说明:

整理下springboot项目restful接口风格代码的编写流程。

博客目录

一、开发准备

  • 1.1 数据库和表
  • 1.2 maven相关依赖

二、工程说明

  • 2.1工程结构图:
  • 2.2 自定义配置文件

三、代码编写

  • 3.1 Pojo类User的编写
  • 3.2 Dao层编写
  • 3.3 Service 业务逻辑层
  • 3.4 Controller 控制层
  • 3.5 Application 主程序

四、代码测试

一、开发准备

在开发程序之前,应先做好一下准备

  1. 1.1 数据库和表
CREATE DATABASE `spring-boot-case`;
USE `spring-boot-case`;
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
 `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
 `name` varchar(10) DEFAULT NULL COMMENT '姓名',
 `age` int(2) DEFAULT NULL COMMENT '年龄',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
  1. 1.2 maven相关依赖

    springBoot最核心的jar

    spring-boot-starter :核心模块,包括自动配置支持、日志和YAML;

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>spring-boot-restful-crud</artifactId>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
        <mybatis-spring-boot>1.3.2</mybatis-spring-boot>
        <mysql-connector>8.0.16</mysql-connector>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- Spring Boot Mybatis 依赖 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis-spring-boot}</version>
        </dependency>
        <!-- MySQL 连接驱动依赖 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-connector}</version><
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder_Boy_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值