java编写restful风格的按id查找书,查找不到返回失败例子
时间: 2024-03-17 07:40:28 浏览: 16
好的,以下是一个简单的例子,使用Java Spring Boot框架实现RESTful风格的按id查找书,如果查找不到则返回失败信息:
```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@SpringBootApplication
@RestController
public class BookApplication {
// 模拟书的数据
private static List<Book> books = new ArrayList<>();
static {
books.add(new Book(1, "Java编程思想", "Bruce Eckel"));
books.add(new Book(2, "Effective Java", "Joshua Bloch"));
books.add(new Book(3, "Head First设计模式", "Eric Freeman"));
}
// 按id查找书
@GetMapping("/books/{id}")
public ResponseEntity<Book> getBook(@PathVariable int id) {
for (Book book : books) {
if (book.getId() == id) {
return new ResponseEntity<>(book, HttpStatus.OK);
}
}
// 如果查找不到则返回失败信息
return new ResponseEntity<>(new Book(), HttpStatus.NOT_FOUND);
}
public static void main(String[] args) {
SpringApplication.run(BookApplication.class, args);
}
}
class Book {
private int id;
private String title;
private String author;
public Book() {}
public Book(int id, String title, String author) {
this.id = id;
this.title = title;
this.author = author;
}
// getter和setter方法省略...
}
```
在上面的代码中,我们定义了一个`/books/{id}`的路由,其中`{id}`表示id是一个整数类型。当用户访问这个路由时,我们会遍历books列表,查找与id相等的书,如果找到则返回书的信息,如果找不到则返回一个包含错误信息的JSON响应,状态码为404。我们使用了`ResponseEntity`类来封装响应信息和响应状态码。