我是这个领域的新手,想用Spring和Maven的依赖关系(如Project Lombok)来创建一个API,只是为了让我的学习更上手。
所以我已经设法写了一些代码来启动应用程序,现在我正在创建一些端点。其中第一个是我哥哥帮我做的 "列表用户 "类型的东西,它分为3个类,我将在下面列出。
(1)UserListResponse.java 。
package com.tropicalia.meu_cardapio.api.user.list;
import lombok.Data;
@Data
public class UserListResponse {
private Long id;
private String name;
private String email;
}
(2) UserListRest.java
package com.tropicalia.meu_cardapio.api.user.list;
import com.tropicalia.meu_cardapio.domain.user.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/users")
public class UserListRest {
@Autowired
UserListService service;
@GetMapping
public ResponseEntity<List<User>> list() {
return ResponseEntity.ok().body(service.listUsers());
}
}
(3) UserListService.java
package com.tropicalia.meu_cardapio.api.user.list;
import com.tropicalia.meu_cardapio.domain.user.User;
import com.tropicalia.meu_cardapio.domain.user.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserListService {
@Autowired
UserRepository repository;
public List<User> listUsers() {
List<User> list = repository.findAll();
return list;
}
}
我写这个帖子的原因是,我不知道如何创建其他的端点,比如 "创建用户",我甚至不知道从哪里开始研究,如果有人能在这里帮我指点一下,我将非常感激。
我使用的方法之一是把控制器分成所谓的资源,比如。
然后你可以创建一个控制器,叫做 UserController
与控制器层的映射,以及方法层的一些特定映射,如。
@RestController
@RequestMapping("/users")
public class UserController{
@GetMapping
public ResponseEntity<List<UserDto>> getUsers(){}
@GetMapping("/{id}")
public ResponseEntity<UserDto> getOneUser(@PathVariable Long id){}
@PostMapping
public ResponseEntity<UserDto> addUser(@RequestBody UserDto user){}
@PutMapping("/{id}")
public ResponseEntity<UserDto> updateUser(@PathVariable Long id, @RequestBody UserDto user){}
}
然后你就可以使用servicerepository层与spring data JPA来读取persist你的数据。好的出发点是spring指南,比如。
首先,也许最好是定义更多的通用端点,而不是UserList,通常最好是定义User端点,并在那里添加所有的方法和路由,如listUser或getUser,addUser...。
此外,当你使用@Repository时,它会生成基本方法来 "获取、添加、删除或更新 "你的对象。
例如,你可以在你的服务中定义
public User saveUser(User user) {
if (user != null) {
return repository.save(user);
} else {
return null;
}
}
而在你的控制器中。
@PostMapping("/addUser")
public User addUser(@Valid @RequestBody User user) {
user newUser = service.saveUser(user);
return newUser;
}
如果你有更多的疑问,请告诉我。