使用Spring boot创建Rest API

本篇文章,我们通过使用Spring Boot和Spring Initializr来演示创建简单的RESTful API的过程。

微信搜索关注《Java学研大本营》,加入读者群,分享更多精彩

1 简介

在这篇文章中,我们通过使用Spring Boot和Spring Initializr来演示创建简单的RESTful API的过程。Spring Boot是一个流行的框架,它简化了Spring应用程序的开发和部署,而Spring Initializr是一个基于Web的服务,它可以根据你的要求生成项目模板。

下面是关于如何使用Spring Boot和Spring Initializr创建RESTful API的分步骤指南:

2 使用Spring Initializr设置项目

进入Spring Initializr网站,填写以下内容:

  • 项目类型:Maven项目

  • 语言:Java

  • 包装:Jar

  • Java 版本:11

  • 组:com.example

  • 神器:restful-api

  • 命名:restful-api

  • 描述:使用Spring Boot的简单RESTful API

  • 包装名称:com.example.restfulapi

在 "选项 "下,选择以下:

  • 网络:Spring Web

  • 开发工具:Spring Boot DevTools (可选,用于开发目的)

点击 "生成",将项目模板下载为ZIP文件。提取文件并将项目导入你喜欢的IDE。

3 创建模型类

com.example.restfulapi.model包中创建一个名为Person的新Java类。这个类在我们的RESTful API中代表一个人。

package com.example.restfulapi.model;

public class Person {
    private Long id;
    private String firstName;
    private String lastName;

    // 构造函数、获取器和设置器
}

4 创建控制器类

com.example.restfulapi.controller包中创建一个名为PersonController的新Java类。这个类将为我们的RESTful API处理HTTP请求。

package com.example.restfulapi.controller;

import com.example.restfulapi.model.Person;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicLong;

@RestController
@RequestMapping("/api/v1/people")
public class PersonController {

    private final List<Person> people = new ArrayList<>();
    private final AtomicLong counter = new AtomicLong();

    @GetMapping
    public List<Person> getAllPeople() {
        return people;
    }

    @PostMapping
    public Person createPerson(@RequestBody Person person) {
        person.setId(counter.incrementAndGet());
        people.add(person);
        return person;
    }

    @GetMapping("/{id}")
    public Person getPersonById(@PathVariable("id") Long id) {
        return people.stream()
                .filter(person -> person.getId().equals(id))
                .findFirst()
                .orElse(null);
    }

    @PutMapping("/{id}")
    public Person updatePerson(@PathVariable("id") Long id, @RequestBody Person updatedPerson) {
        Person person = getPersonById(id);
        if (person != null) {
            person.setFirstName(updatedPerson.getFirstName());
            person.setLastName(updatedPerson.getLastName());
        }
        return person;
    }

    @DeleteMapping("/{id}")
    public void deletePerson(@PathVariable("id") Long id) {
        people.removeIf(person -> person.getId().equals(id));
    }
}

5 运行应用程序

在你的IDE中运行RestfulApiApplication类,或者在项目根目录下使用以下命令:

./mvnw spring-boot:run

6 测试API

你可以使用Postman或curl等工具来测试API。这里有一些样本请求:

  • 获取所有的人:GET http://localhost:8080/api/v1/people

  • 创建一个新的人:POST http://localhost:8080/api/v1/people 与JSON主体 {"firstName":"John", "lastName":"Doe"}

  • 通过身份证找一个人:GET http://localhost:8080/api/v1/people/1

  • 更新一个人:PUT http://localhost:8080/api/v1/people/1 与JSON主体 {"firstName": "Jane", "lastName": "Doe"}

  • 删除一个人:DELETE http://localhost:8080/api/v1/people/1

7 总结

在这篇文章中,我们学习到了使用Spring Boot和Spring Initializr创建一个简单的RESTful API的过程。我们创建了模型类来代表一个人,实现了控制器来处理HTTP请求,并使用样本请求测试了API。Spring Boot和Spring Initializr让我们能很容易地构建RESTful API和其他类型的应用程序,你的下个项目可以尝试使用它们!

推荐书单

Java语言程序设计(第3版)

《Java语言程序设计(第3版)》从初学者角度出发,用通俗易懂的语言、丰富多彩的案例讲述了Java语言的理论知识和编程方法,内容覆盖全国计算机等级考试二级Java语言程序设计的大纲要求,同时融入了新版JDK的特色知识。全书分18章,内容分别是Java语言概述,数据类型与表达式,流程控制语句,数组与方法,类与对象,继承与多态,常用数据类型处理类,抽象类、接口与内嵌类,异常处理,Java绘图,图形用户界面编程基础,流式输入/输出与文件处理、Java泛型与收集API,Lambda表达式、Stream与枚举类型,多线程,高级图形界面编程,JDBC技术与数据库应用,Java的网络编程。读者可以跟随本书的讲解,边学边练,设计出功能较强的中小型应用程序。

《Java语言程序设计(第3版)》(丁振凡,范萍)【摘要 书评 试读】- 京东图书京东JD.COM图书频道为您提供《Java语言程序设计(第3版)》在线选购,本书作者:,出版社:清华大学出版社。买图书,到京东。网购图书,享受最低优惠折扣!icon-default.png?t=N658https://item.jd.com/13512397.html

精彩回顾

Java中的继承与多态

Markdown Nice最全功能介绍

FPGA的工作原理是什么?

HuggingGPT:解决处理AI任务的秘密武器

ChatGPT的背后原理:大模型、注意力机制、强化学习

ChatGPT和Bard太贵,介绍8个免费开源的大模型解决方案!

微信搜索关注《Java学研大本营》

访问【IT今日热榜】,发现每日技术热点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值