带有 Kotlin 和 Spring BootPost 的 REST API 返回空对象

Posted

技术标签:

【中文标题】带有 Kotlin 和 Spring BootPost 的 REST API 返回空对象【英文标题】:REST API with Kotlin and Spring BootPost return empty objects 【发布时间】:2018-11-08 10:03:18 【问题描述】:

我是 Kotlin 语言的新手,我尝试使用 Kotlin 和 Spring Boot 的简单 RESTFUL API。我的查询方法没有返回预期的结果。我希望在退还申请时收到这个:

[
    
        "id": 0,
        "name": "string 1",
        "color": "string 1"
    ,
    
        "id": 1,
        "name": "string 2",
        "color": "string 2"     
    
]

但我收到了这个(HTTP 状态 200):

[
  ,
  
]

我的数据库有类别,我的服务和存储库执行正常。这是我的控制器的代码:

@RestController
@RequestMapping("/category")
class CategoryController (val categoryService: CategoryService) 

    @GetMapping
    fun findAll(): ResponseEntity<Any> 
        try 
            return ResponseEntity.ok(categoryService.findAll())
         catch (e: Exception) 
            val msg = "Something went wrong: " + e.message
            return ResponseEntity(msg, HttpStatus.INTERNAL_SERVER_ERROR)
        

    


我做错了什么?感谢您的帮助!

【问题讨论】:

您确定调用categoryService.findAll() 会返回有效结果吗? 是的,感谢您的宝贵时间,但我发现了问题! 【参考方案1】:

我发现了问题。我的数据类变量是私有的,我删除了私有声明,现在内容显示在响应正文中

【讨论】:

以上是关于带有 Kotlin 和 Spring BootPost 的 REST API 返回空对象的主要内容,如果未能解决你的问题,请参考以下文章

带有 kotlin 设置问题的 Spring Boot gradle 项目

带有 Spring Boot 2.0 @ConfigurationProperties 的 Kotlin 无法正常工作

带有 Kotlin 的 Spring Boot - @Value 注释未按预期工作

缺少 JSON 密钥(在带有 kotlin 的 Spring-boot 上使用 @JsonComponent)

使用 Spring Boot 进行 Kotlin 集成测试

使用 spring boot、kotlin 和 junit 进行休息控制器单元测试