Rest api有时返回字符串有时返回json对象

Posted

技术标签:

【中文标题】Rest api有时返回字符串有时返回json对象【英文标题】:Rest api sometimes return string some times return json object 【发布时间】:2022-01-19 12:30:16 【问题描述】:

我是一名安卓开发者,前端团队的一员。最近我在调试一部分不是我写的android代码。是其他人开发了它。我看到android代码调用了一个rest api,它返回一个json对象,但有时它可能会返回一个字符串。我很惊讶后端返回不同类型的响应。我应该注意到 Retrofit 2 是我们用于 api 调用的库。无法在改造接口中定义数据类并获取字符串作为响应,但 android 开发人员在违反 mvvm 架构的视图层处理它。 我的问题是,顺便说一句,可以在休息响应中返回不同的类型,是否可以或更好地说这样做是否明智?我是否应该对我们亲爱的后端开发人员采取任何行动停止提供此类服务? 以防我们的后端技术是 Spring boot。

【问题讨论】:

我建议从后端返回一个 DTO。 baeldung.com/java-dto-pattern. 不,这是不可接受的。后端应该发送一个特定的数据结构。 【参考方案1】:

您的后端服务每次都应返回相同的数据结构。前端开发人员不必担心这一点。我会说你把它带到后端团队来调查这个问题,我不会做任何解决方法来解决 Android 端的问题。

【讨论】:

以上是关于Rest api有时返回字符串有时返回json对象的主要内容,如果未能解决你的问题,请参考以下文章

如何处理 API 有时将属性作为数组返回,有时作为对象返回?

解析 JSON,有时获取数字而不是字符串

Spring Boot @JsonIgnore 在实体上,有时我希望将属性作为 Json 返回

如何使用json.net自定义反序列化为对象

有时是数组有时是对象时反序列化JSON

设计用于返回多个对象计数的 REST api