SpringBoot构建RESTful API——基础构建

1:简单,简单,就是因为简单

@RestController
@RequestMapping("/user")
public class UserController {

    Map<String,User> userDB = Collections.synchronizedMap(new HashMap<String, User>());

    @RequestMapping(value="/save", method=RequestMethod.POST, consumes = "application/json")
    public void saveUser(@RequestBody List<User> users){
        for (User user: users) {
            userDB.put(user.getId(),user);
        }
    }

    @RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = "application/json")
    public User getUserById(@PathVariable("id") String id){
        return userDB.get(id);
    }

}

通过以上短短几行代码我们已经定义了存储用户和获取用户两个操作,接下来我会给您详细解释。

方法解释

名称描述
@RequestController使用了这个注解的类会被看作一个controller-使用@RequestMapping的方法有一个默认的@ResponseBody注解。
@RequestMapping(“/user”)处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
@RequestMapping 中 value对应映射路径
@RequestMapping 中 method定义了请求方法
@RequestMapping 中 consumes定义了只接受请求头部 Content-Type 属性,上例中 content-Type=”application/json”
@RequestMapping 中 produces定义了只接受请求头部 Accept 属性,上例中 Accept=”application/json”
@RequestBody将请求内容自动映射成为 Java 对象
@PathVariable将请求内容自动映射成为基础类型

代码解读

定义类路径上拦截URL的中user关联所有请求

@RestController
@RequestMapping("/user")
public class UserController {

定义一个Map对象,模拟数据库存储用户信息。

 Map<String,User> userDB = Collections.synchronizedMap(new HashMap<String, User>());

拦截/user/save请求,consumes定义了只接受json类型数据。@RequestBody 会主动将json对象转换为Java对象,以供业务处理。

 @RequestMapping(value="/save", method=RequestMethod.POST, consumes = "application/json")
    public void saveUser(@RequestBody List<User> users){
        for (User user: users) {
            userDB.put(user.getId(),user);
        }
    }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个使用 Spring Boot 构建基于 RESTful 风格的图书管理系统的示例: 1. 首先,在 pom.xml 文件中添加 Spring Boot 和 Spring Web 的依赖: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> ``` 2. 创建一个 Book 实体类,用于表示图书信息: ```java public class Book { private int id; private String name; private String author; // getter 和 setter 方法省略 } ``` 3. 创建一个 BookService 类,用于提供图书信息的增删改查功能: ```java @Service public class BookService { private List<Book> bookList; public BookService() { bookList = new ArrayList<>(); bookList.add(new Book(1, "Java编程思想", "Bruce Eckel")); bookList.add(new Book(2, "Effective Java", "Joshua Bloch")); bookList.add(new Book(3, "Head First设计模式", "Eric Freeman")); } public List<Book> getAllBooks() { return bookList; } public Book getBookById(int id) { for (Book book : bookList) { if (book.getId() == id) { return book; } } return null; } public void addBook(Book book) { bookList.add(book); } public void updateBook(int id, Book book) { for (int i = 0; i < bookList.size(); i++) { if (bookList.get(i).getId() == id) { bookList.set(i, book); break; } } } public void deleteBook(int id) { for (int i = 0; i < bookList.size(); i++) { if (bookList.get(i).getId() == id) { bookList.remove(i); break; } } } } ``` 4. 创建一个 BookController 类,用于处理 HTTP 请求和响应: ```java @RestController public class BookController { @Autowired private BookService bookService; @GetMapping("/books") public List<Book> getAllBooks() { return bookService.getAllBooks(); } @GetMapping("/books/{id}") public Book getBookById(@PathVariable("id") int id) { return bookService.getBookById(id); } @PostMapping("/books") public void addBook(@RequestBody Book book) { bookService.addBook(book); } @PutMapping("/books/{id}") public void updateBook(@PathVariable("id") int id, @RequestBody Book book) { bookService.updateBook(id, book); } @DeleteMapping("/books/{id}") public void deleteBook(@PathVariable("id") int id) { bookService.deleteBook(id); } } ``` 5. 运行应用程序,并使用 Postman 等工具发送 HTTP 请求,即可对图书信息进行增删改查操作。 以上是一个简单的使用 Spring Boot 构建基于 RESTful 风格的图书管理系统的示例。通过使用 Spring Boot 提供的 Web 开发支持和依赖注入功能,我们可以轻松地构建出高效、可扩展、可维护的 RESTful API,并实现面向服务的架构模式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值