Java 为具有两个对象的服务方法创建restController方法post

Java 为具有两个对象的服务方法创建restController方法post,java,rest,Java,Rest,我有一个正在使用的方法,我将人员添加到团队中: @Transactional public void addPersonsToTeams(Long teamId, Long personId) { Assert.notNull(personId, "Object can't be null!"); Assert.notNull(teamId, "Object can't be null!"); try { Perso

我有一个正在使用的方法,我将人员添加到团队中:

@Transactional
    public void addPersonsToTeams(Long teamId, Long personId) {
        Assert.notNull(personId, "Object can't be null!");
        Assert.notNull(teamId, "Object can't be null!");
        try {
            Person person = personRepository.getOne(personId);
            Team team = teamRepository.getOne(teamId);
            person.getTeams().add(team);
            personRepository.save(person);
        } catch (Exception e) {
            throw new CreateEntityException();
        }

    }
现在在我的rest控制器类中,我想创建一个post方法来在postman中测试它。但这是我第一次使用双参数方法,我不知道如何创建它。 其实我只有这个:

@PostMapping("/addPeopleToTeams")
    public ResponseEntity<?> addPeopleToTeam(@RequestBody Long teamId, Long personId){

    }
@PostMapping(/addPeopleToTeams)
公共响应属性addPeopleToTeam(@RequestBody Long teamId,Long personId){
}

这是好办法吗?也许有人有一些例子?

你可以把整个帖子放到一个POJO中。下面是类似的例子

@RequestMapping(value = { "/api/pojo/edit" }, method = RequestMethod.POST, produces = "application/json", consumes = "application/json")
@ResponseBody
public Boolean addPeopleToTeam( @RequestBody Pojo pojo) { return false; }
其中Pojo中的每个字段(包括getter/setter)都应该与控制器接收的Json请求对象匹配


可能将
teamId
作为
@PathVariable
放置。这样,您将在
@RequestBody
中使用
personId
调用
/addPeopleToTeams/{teamId}
。或者,您也可以发送如下格式的json:

{ 
   "personId" : "xx",
   "teamId" : "xx"
}
然后,您可以使用
@RequestBody
中的此对象使用
/addPeopleToTeams
调用它。你可以用很多不同的方法来做。只需按照代码其余部分中最有意义的方式执行即可

@RequestMapping(value = { "/addPeopleToTeams/{teamId}/{personId}" }, method = RequestMethod.POST, produces = "application/json", consumes = "application/json")
@ResponseBody
public Boolean addPeopleToTeam( @PathVariable("teamId") Long teamId, @PathVariable("personId")  Long personId)

但是您需要像那样调用您的方法
/addPeopleToTeams/1/2

,但是我使用dto和ModelMapper只要用dto替换pojo,在post请求中将json作为一个主体传递。但是在您的示例中,我没有看到我的方法addPeopleToTeam。我需要使用这个方法,这个方法有两个参数,这两个类都可以。你可以更新你的方法,使用Pojo作为参数,然后当你传递一个json时,它将被填充,参数的名称与Pojo中定义的名称相同。然后您可以使用setter方法来获取信息。