使用Spring REST,请求参数转换为对象(如果您发布帖子),并使用@RequestBody
,例如:
@RestController
@RequestMapping("/reservations")
class ReservationController{
...
@RequestMapping(value="/postByName")
public Reservation save(@RequestBody Reservation reservation) {
return reservationRepository.save(reservation);
}
...
}
然后我这样做,这很好,创建了预订:
curl -i -X POST -H "Content-Type:application/json" -d "{ \"name\" : \"Foo\" }" http://localhost:8080/reservations/postByName
我的问题是,当您使用路径变量而不是请求参数时,是否存在某些内容。所以我应该这样做:
curl -i -X POST -H "Content-Type:application/json" http://localhost:8080/reservations/postByName/Foo
现在我手工完成:在代码中我创建一个带new
的预留并将路径变量放入其中。
答案 0 :(得分:0)
@PathVariable参数可以是任何简单类型,例如int,long,Date等。如果无法执行此操作,Spring会自动转换为适当的类型或抛出TypeMismatchException。您还可以注册支持解析其他数据类型。请参阅“方法参数和类型转换”一节以及“自定义WebDataBinder初始化”一节。