I'm developing a Spring Boot application to manage CRUD operations for a "Pessoa" entity. The entity is mapped to a table named "Test" in the database. I have created a Pessoa entity class with the associated getters and setters, a PessoaController class to handle HTTP requests, and a PessoaRepository interface that extends JpaRepository for database operations.
字符串
实体:
用给定的参数构造一个Pessoa。
@Entity
@Table(name = "Test")
public class Pessoa {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "nome", length = 60, nullable = false)
private String nome;
@Column(name = "doc", length = 14)
private String documento;
public Pessoa(Long id, String nome, String documento) {
this.id = id;
this.nome = nome;
this.documento = documento;
}
public Pessoa() {
}
// Getters and Setters...
}
型
控制器:
检索所有pessoas的列表。
@RestController
@RequestMapping("/pessoa")
public class PessoaController {
@Autowired
private PessoaRepository pessoaRepository;
@GetMapping
public List<Pessoa> all() {
return pessoaRepository.findAll();
}
@GetMapping("/{id}")
public Pessoa getById(@PathVariable Long id) {
return pessoaRepository.findById(id).orElse(null);
}
@PostMapping
public Pessoa create(@RequestBody Pessoa nova) {
return pessoaRepository.save(nova);
}
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id) {
pessoaRepository.deleteById(id);
}
@PutMapping
public void put(@RequestBody Pessoa pessoa) {
if (pessoa.getId() > 0) {
pessoaRepository.save(pessoa);
}
}
}
型
资料档案库:
数据库操作的其他方法(如果需要)
@Repository
public interface PessoaRepository extends JpaRepository<Pessoa, Long> {
}
型
原油应用:
运行Sping Boot 应用程序并初始化每个crud应用程序的Main方法。
@SpringBootApplication
public class CrudApplication {
public static void main(String[] args) {
SpringApplication.run(CrudApplication.class, args);
}
}
型
我遇到了一个删除端点的问题;它似乎不像预期的那样工作。此外,我不确定如何使用Postman连接和测试这个CRUD应用程序。任何见解或指导都将非常感谢!
3条答案
按热度按时间ffscu2ro1#
如果你已经成功测试了其他请求,那么你知道应用程序的基本路径。你可能在本地运行Spring,地址将是
localhost:8080
。在这个地址上,方法delete被Map为
/{id}
,结果是localhost:8080/1
删除id等于1的元素。在Postman中,确保创建一个POST请求。也许它对你不起作用的原因是你把它作为POST或其他方法。
的数据
rmbxnbpk2#
请用英语写代码,因为如果你需要分享你的代码,它对每个人来说都更可读。
您的put方法:
字符串
通常你应该检查你的实体是否不为空,除了你正在做的事情,类似这样:
型
当谈到删除方法,它似乎很好,你将需要给予我们更多的信息,什么是不正常工作。
要学习Postman,请查看他们做得很好的文档:postman documentation
vyswwuz23#
您可以使用lombok删除实体中的样板代码,只是为了确保没有引入任何bug
未经验证,但这个片段非常简单,它必须按预期工作
使用postman进行手动测试很难管理,而且很容易出错!开始使用junit来自动化这个过程,您可以简单地开始测试控制器(使用mockMvc),直接在存储库中加载一些数据
当你决定使用postman时,你可以使用swagger获取openApi规范,并导入json来自动创建一个集合。