REDTful风格设计接口

Posted wycbolg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了REDTful风格设计接口相关的知识,希望对你有一定的参考价值。

技术图片

 

 1.创建实体类

package com.offcn.po;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Long id;
private String name;
private Integer age;
}

2. 创建Controller  UserController

package com.offcn.controllerold;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.offcn.po.User;

@RestController
@RequestMapping("/users-test")
public class UserController {

//这里加同步锁是为了访问安全

private List<User> listUser=Collections.synchronizedList(new ArrayList<User>());

/***
* 获取全部用户信息
* @return
*/
@GetMapping("/")
public List<User> getUserList(){
return listUser;
}

/***
* 新增用户
* @param user
* @return
*/
@PostMapping("/")
public String createUser(User user) {
listUser.add(user);
return "success";
}

/***
* 获取指定id用户信息
* @param id
* @return
*/
@GetMapping("/{id}")
public User getUser(@PathVariable("id")Long id) {
for (User user : listUser) {
if(user.getId()==id) {
return user;
}
}
return null;
}
/**
* 更新指定id用户信息
* @param id
* @param user
* @return
*/
@PutMapping("/{id}")
public String updateUser(@PathVariable("id") Long id,User user) {
for (User user2 : listUser) {
if(user2.getId()==id) {
user2.setName(user.getName());
user2.setAge(user.getAge());
}
}
return "success";
}

/***
* 删除指定id用户
* @param id
* @return
*/
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable("id") Long id) {

listUser.remove(getUser(id));
return "success";

}
}

以上是关于REDTful风格设计接口的主要内容,如果未能解决你的问题,请参考以下文章

restful风格接口和spring的运用

Restful风格接口书写规范

Springboot怎么实现restfult风格Api接口

restful架构风格设计准则资源识别和资源设计

基于Java的REST架构风格及接口安全性设计的讨论

如何设计一个优雅的RESTFUL的接口