[srpingboot]菜鸟学习-ReSTful

news/2024/12/29 2:14:26/

REST即表述性状态转移(英文:Representational State Transfer,简称REST),是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。它主要描述了资源的表述以及资源之间的联系。而restful是指符合REST协议的Web API设计风格。它是一种基于HTTP协议实现的可伸缩、灵活、简洁、轻量级、易于扩展和维护的API设计方式。RESTful API使用HTTP协议的GET、POST、PUT或DELETE等请求方法访问和操作资源,使得API具有良好的可读性、可维护性和可扩展性。它适用于任何网络应用场景,特别是适用于移动应用。REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。

以下是一个简单的RESTful API示例,使用Node.js和Express框架:

const express = require('express');
const app = express();// Mock data
const users = [{ id: 1, name: 'John' },{ id: 2, name: 'Jane' },{ id: 3, name: 'Bob' }
];// Get all users
app.get('/users', (req, res) => {res.json(users);
});// Get user by id
app.get('/users/:id', (req, res) => {const user = users.find(u => u.id === parseInt(req.params.id));if (user) {res.json(user);} else {res.status(404).json({ message: 'User not found' });}
});// Create new user
app.post('/users', (req, res) => {const user = {id: users.length + 1,name: req.body.name};users.push(user);res.status(201).json(user);
});// Update user by id
app.put('/users/:id', (req, res) => {const user = users.find(u => u.id === parseInt(req.params.id));if (user) {user.name = req.body.name;res.json(user);} else {res.status(404).json({ message: 'User not found' });}
});// Delete user by id
app.delete('/users/:id', (req, res) => {const userIndex = users.findIndex(u => u.id === parseInt(req.params.id));if (userIndex !== -1) {users.splice(userIndex, 1);res.status(204).send();} else {res.status(404).json({ message: 'User not found' });}
});app.listen(3000, () => {console.log('Server started on port 3000');
});

以上示例中,我们使用Express框架创建了一个简单的API。我们定义了四个路由:

  • GET /users:返回所有用户的列表。
  • GET /users/:id:返回具有指定id的用户的详细信息。
  • POST /users:在服务器上创建一个新的用户。
  • PUT /users/:id:使用新的用户信息更新具有指定id的用户。
  • DELETE /users/:id:删除具有指定id的用户。

这些路由使我们的API符合RESTful架构。我们可以使用相应的HTTP方法和请求路径来执行各种操作。

Spring Boot框架创建RESTful API示例:

1.创建Spring Boot项目

使用Spring Initializr(https://start.spring.io/)或者Eclipse/IntelliJ IDEA创建一个新的Spring Boot项目。

2.添加依赖

pom.xml文件中,添加spring-boot-starter-web依赖,用于支持Web应用程序。

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>

3.创建实体类

我们创建一个名为User的实体类,该类将作为我们的数据模型

public class User {private Long id;private String name;private String email;// Constructors, getters and setters
}

4.创建控制器

我们创建一个名为UserController的REST控制器类,用于处理用户相关的HTTP请求。

@RestController
@RequestMapping("/users")
public class UserController {private Map<Long, User> users = new HashMap<>();@GetMapping("/")public List<User> getAllUsers() {return new ArrayList<>(users.values());}@GetMapping("/{id}")public User getUserById(@PathVariable Long id) {return users.get(id);}@PostMapping("/")public User createUser(@RequestBody User user) {user.setId(Long.valueOf(users.size() + 1));users.put(user.getId(), user);return user;}@PutMapping("/{id}")public User updateUser(@PathVariable Long id, @RequestBody User user) {user.setId(id);users.put(id, user);return user;}@DeleteMapping("/{id}")public void deleteUser(@PathVariable Long id) {users.remove(id);}
}

在控制器类中,我们使用@RestController注释将其指定为REST控制器。定义以下请求映射:

  • GET /users:返回所有用户的列表。
  • GET /users/{id}:返回具有指定id的用户的详细信息。
  • POST /users:在服务器上创建一个新的用户。
  • PUT /users/{id}:使用新的用户信息更新具有指定id的用户。
  • DELETE /users/{id}:删除具有指定id的用户。

@RequestBody注解将HTTP请求的请求体映射到User对象。@PathVariable注释将URI路径变量映射到方法参数。

5.运行应用程序

可以使用mvn spring-boot:run命令或在IDE中运行Spring Boot应用程序。启动后,可以使用任何REST客户端(如Postman)测试API。


http://www.ppmy.cn/news/370644.html

相关文章

htc e9刷android6,HTC One E9+(E9pw 联通4G)刷机图文详解教程

玩安卓手机最大的乐趣当然就是刷机了&#xff0c;为了让HTC One E9(E9pw 联通4G)手机变的更快&#xff0c;我们通常都会通过刷机来提高HTC One E9(E9pw 联通4G)手机的运行速度&#xff0c;下面跟大家分享怎么用奇兔刷机对HTC One E9(E9pw 联通4G)进行一键刷机&#xff0c;具体步…

htc x920e刷android7.0,HTC X920e (Butterfly)一键刷机图文教程

经常会有机友提问&#xff0c;我的HTC X920e (Butterfly)手机支不支持一键刷机?由于奇兔刷机已经支持多达上千款安卓手机一键刷机&#xff0c;所以有时候小编也无法及时回答上来&#xff0c;最简单的办法就是把手机连上奇兔刷机&#xff0c;即可看到手机是否支持一键刷机。一键…

linux提取手机rom,xp系统下面(android)安卓手机刷机ROM教程

第 2 页 从官方RUU刷机程序中提取 从官方RUU刷机程序中提取官方原版ROM&#xff1a; 第一步&#xff1a;下载官方RUU刷机程序(EXE文件) 第二步&#xff1a;运行您已经下载的RUU刷机程序 (例如&#xff1a;RUU_Legend_hTC_Asia_TW_1.31.709.2_Radio_47.26.35.04_7.05.35.26L_rel…

android手机各大分区详解

1. bootloader 当我们拿到一款手机&#xff0c;第一件事应该就是按下电源键开机&#xff0c;那么从开机到进入到桌面程序这中间发生了些什么呢&#xff0c;我们从下面这张简化了的手机结构图开始&#xff1a; 注意&#xff1a;该结构图并不反映手机的实际分区顺序和位置&#x…

Ubuntu下eclipse无法识别手机驱动

google官方开发向导里对Android手机已经设置了允许安装非market程序&#xff0c;并且处于usb调试模式&#xff0c;但是仍然在usb连接电脑后无法被识别的问题作了解释。 官方网址&#xff1a;http://developer.android.com/guide/developing/device.html 如果是windows平台下&am…

htc A315 android usb驱动安装

根据一本书上的说明进行安装&#xff0c;类似这个文档上的 http://ajava.org/readbook/J2ME/androidsdkdq/17365.html&#xff0c;安装时报&#xff1a; 指定的位置不包含有关硬件的信息 和 无法安装这个硬件 错误 查了很多文档&#xff0c;这个问题很多人碰到&#xff0c;我…

htc+android+4.4.4,htc one升级android 4.4教程:htc one升级安卓4.4步骤详解

----HTC One 801e升级安卓4.4注意事项 1、本教程适用于HTC 801e M7单卡版刷入4.4 官方RUU&#xff0c;也适用于其他zip格式的RUU刷入&#xff0c;不过请自行修改部分下载内容。 2、刷机前请保证你的手机已经S-OFF了&#xff0c;电量高于30%&#xff0c;同时你所操作的电脑系统是…

htc+606w的android+os+,htc606w刷机教程详解【图解】

近些年台湾企业在国际上可谓是过得十分不错&#xff0c;出现了许多国际大厂&#xff0c;HTC就是其中一个。HTC作为台湾企业&#xff0c;在国际上的威望还是很高的&#xff0c;再加上第一部搭载安卓系统的手机就是出自HTC之手&#xff0c;所以说HTC在安卓系统上的专研是很深的。…