我怎样才能恢复这个删除端点,并在 Postman 初始化它

gywdnpxw  于 2023-11-18  发布在  Postman
关注(0)|答案(3)|浏览(156)
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应用程序。任何见解或指导都将非常感谢!

ffscu2ro

ffscu2ro1#

如果你已经成功测试了其他请求,那么你知道应用程序的基本路径。你可能在本地运行Spring,地址将是localhost:8080
在这个地址上,方法delete被Map为/{id},结果是localhost:8080/1删除id等于1的元素。
在Postman中,确保创建一个POST请求。也许它对你不起作用的原因是你把它作为POST或其他方法。


的数据

rmbxnbpk

rmbxnbpk2#

请用英语写代码,因为如果你需要分享你的代码,它对每个人来说都更可读。
您的put方法:

@PutMapping
public void put(@RequestBody Pessoa pessoa) {
    if (pessoa.getId() > 0) {
        pessoaRepository.save(pessoa);
    }
}

字符串
通常你应该检查你的实体是否不为空,除了你正在做的事情,类似这样:

@PutMapping
public void put(@RequestBody Pessoa pessoa) {
    if (pessoa.getId() != null && pessoa.getId() > 0) {
        pessoaRepository.save(pessoa);
    }
}


当谈到删除方法,它似乎很好,你将需要给予我们更多的信息,什么是不正常工作。
要学习Postman,请查看他们做得很好的文档:postman documentation

vyswwuz2

vyswwuz23#

您可以使用lombok删除实体中的样板代码,只是为了确保没有引入任何bug
未经验证,但这个片段非常简单,它必须按预期工作
使用postman进行手动测试很难管理,而且很容易出错!开始使用junit来自动化这个过程,您可以简单地开始测试控制器(使用mockMvc),直接在存储库中加载一些数据
当你决定使用postman时,你可以使用swagger获取openApi规范,并导入json来自动创建一个集合。

相关问题