【问题标题】:Post object using restController使用 restController 发布对象
【发布时间】:2018-11-20 11:24:18
【问题描述】:

我有一个小问题,无法正确创建将人员添加到团队的方法。原因是我的问题是我不能在 requestbody(或 PathVariable)中添加两个参数。 我想获取一个人 ID 和团队 ID 并返回两者连接。我创建了单独的类,在其中生成 id,但我无法从数据库中正确输入这个 id: 这是我在控制器中的方法:

@PostMapping("/addPeopleToTeams/{teamId}/{personId}")
    @ResponseBody
    public String addPeopleToTeam(@RequestBody TeamsAndPersonsId teamsAndPersonsId){
        System.out.println(" " + teamsAndPersonsId.getPersonId());
        System.out.println(" " + teamsAndPersonsId.getTeamId());
        teamService.findTeamById(teamsAndPersonsId.getTeamId());
        personService.findById(teamsAndPersonsId.getPersonId());

        return teamsAndPersonsId.getTeamId() + " " + teamsAndPersonsId.getPersonId();
    }

这是我在服务中通过 id 查找的方法:

public Optional<TeamDto> findTeamById(Long id) {
        Assert.notNull(id, "ID must exist ");
        return teamRepository
                .findById(id)
                .map(p -> modelMapper.map(p, TeamDto.class));
    }

我的其他班级是 Team - 这是 entity、teamDto 和 TeamsAndPersonsId。

TeamsAndPersonsId 类:

public class TeamsAndPersonsId {

    private Long personId;
    private Long teamId;

    public TeamsAndPersonsId(Long personId, Long teamId) {
        this.personId = personId;
        this.teamId = teamId;
    }

    public TeamsAndPersonsId(){}

    public Long getPersonId() {
        return personId;
    }

    public void setPersonId(Long personId) {
        this.personId = personId;
    }

    public Long getTeamId() {
        return teamId;
    }

    public void setTeamId(Long teamId) {
        this.teamId = teamId;
    }

如何正确编写此控制器方法以返回真实的团队和人员 ID?就像我在 surce 中添加的: @PostMapping("/addPeopleToTeams/{teamId}/{personId}"

【问题讨论】:

    标签: java rest h2


    【解决方案1】:

    您实际上可以使用多个路径变量,使用它们创建一个 TeamsAndPersonsId ,然后保留当前代码的其余部分:

        @PostMapping("/addPeopleToTeams/{teamId}/{personId}")
        @ResponseBody
        public String addPeopleToTeam(@PathVariable Long teamId, @PathVariable Long personId){
    
            TeamsAndPersonsId teamsAndPersonsId = new TeamsAndPersonsId(teamId, personId);
            // etc...
    

    【讨论】:

      猜你喜欢
      • 2015-07-30
      • 1970-01-01
      • 2012-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      相关资源
      最近更新 更多