当前位置: 首页 > 知识库问答 >
问题:

客户端应该只在需要从REST中提取完整的对象信息或字段吗?

牛嘉谊
2023-03-14
java prettyprint-override">Class Person {

    String name;
    int money;

    public Person() {
        JsonObject data = getJsonData(`api.com/person`);
        this.name = data.get('name');
        this.name = data.get('money');
    }


    public String getName() {
        return name;
    }

    public int getMoney() {
        return money;
    }
}

在这种情况下,如果客户端只需要personname,但是对象还从服务器上拉出了money,这会浪费流量等。
或者,我可以像这样替换getName()函数

    public String getName() {
        JsonObject data = getJsonData(`api.com/person?fields=name`);
        return data.get('name');
    }

这不会浪费任何字段
,但缺点是,当客户端同时需要namemoney字段
时,它会将所需的请求加倍

我不知道哪一个更适合我的情况,任何进一步的解释也是非常欢迎的。

共有1个答案

盖泽宇
2023-03-14

您可以使用构建器模式来构建person对象,方法是构建适当的url来获取单个api中的一个或多个字段。例如。

 new PersonBuilder().addName().build(); // url attribute of PersonBuilder in this case should be "api.com/person?fields=name"

 new PersonBuilder().addName().addMoney().build(); // url attribute of PersonBuilder in this case should be "api.com/person?fields=name,money"

在build()方法中,您可以根据使用addName()、addMoney()添加的内容调用不同的setter方法,方法是在PersonBuilder中维护对应于每个字段的不同布尔值,例如nameAdded=true,moneyAdded=false。

 类似资料:
  • 我正在尝试创建一个小项目来处理API调用。我已经创建了一个异步,它使用MusicBrainz API恢复有关曲目的信息。您可以通过单击此处来检查请求的结果:https://musicbrainz.org/ws/2/recording/5935ec91-8124-42ff-937f-f31a20ffe58f?inc=genres 收视率释放艺术家 以下是我迄今为止对我的请求的JSON响应的修改: 现

  • 问题内容: 给定一个Exception对象(来源不明),有没有办法获取其回溯?我有这样的代码: 获得异常后如何从Exception对象提取回溯? 问题答案: 这个问题的答案取决于您使用的Python版本。 在Python 3中 很简单:异常带有一个包含回溯的属性。此属性也是可写的,并且可以使用异常方法方便地设置: 这些功能在文档中作了最少描述。 答案的这一部分应归功于Vyctor,后者首先发布了此

  • 我在一次采访中被问到您有一个API-比如说。此API返回客户的详细信息。但是为了减小REST响应的大小,我们只需要返回有价值的属性。因此,如果客户没有,我们不应该在响应中看到。我们怎么能这样做呢?

  • 获取环境相关信息 var info = Tida.appinfo; 返回 json 格式: { "engine": "tmm", "name": "tmall", "engineVer": "4.9.2", "ver": "4.9.2" } 比较全面的环境相关判断 lib.env.params - url中search参数的对象,例如有ttid参数可以通过lib

  • 我有Spring座后端和角前端。 身份验证是使用请求JSON正文中带有用户名和密码的“/登录”URL的POST请求来执行的(我使用基于表单的身份验证)。REST后端回复OK代码。一切都很好,我可以执行来自前端的其他需要身份验证的请求。 但是前端需要知道身份验证用户的角色是什么,以便它可以显示正确的视图/记录。我们从哪里可以在前端得到这个角色?我们从身份验证中得到的唯一响应是OK,这对于REST来说

  • 下面是演示类 我有一个演示实例: 对于新的,我需要从Demo了解字段,因为我需要一种通用的方法来获得任何具有基本字段/简单字段的类的对象数组