API 使用 @PostMapping 时无法接收信息,但使用 @RequestMapping 时可以接收信息。Spring Boot、Kotlin、REST API

Gib*_*rán 1 rest spring kotlin

我正在尝试通过邮递员保存一个新的“proyecto”。

我在用着:

  • Spring Boot 2.0.6.RELEASE。Kotlin 1.2.71 Java 8。

我使用了 @PostMapping 注释,但它向我发送了空值,但如果我使用 @RequestMapping 它可以正常工作。当我尝试一种或另一种方式时,我会对代码进行注释,以避免冲突。

ProyectoController.kt

@RestController
@RequestMapping("/proyectos")
class  ProyectoController {
    @Autowired
    lateinit var proyectoService : ProyectoService

    //Not working
    @PostMapping("/")
    fun createProyecto(proyecto: Proyecto): Proyecto {
        return proyectoService.createProyecto(proyecto)
    }

    //Working
    @RequestMapping("/", method = arrayOf(RequestMethod.POST))
    fun createProyeto2(@RequestBody proyecto: Proyecto): Proyecto{
        return proyectoService.createProyecto(proyecto)
    }
}
Run Code Online (Sandbox Code Playgroud)

项目.kt

@Document(collection = "proyectos")
@TypeAlias("proyecto")
data class Proyecto (
        @Id
        var id: String?,
        var nombre: String,
        var area: String,
        var fecha:String
)
Run Code Online (Sandbox Code Playgroud)

使用 @PostMapping 的邮递员请求 在此输入图像描述

使用 @RequestMapping 进行邮递员请求 在此输入图像描述

bur*_*ete 5

似乎有一个小的注释缺失;@RequestBody在有问题的端点。尝试拥有;

@PostMapping("/")
fun createProyecto(@RequestBody proyecto: Proyecto): Proyecto {
    return proyectoService.createProyecto(proyecto)
}
Run Code Online (Sandbox Code Playgroud)