将 API 响应返回到 web/Android/iOS 时最好的方法是啥?

Posted

技术标签:

【中文标题】将 API 响应返回到 web/Android/iOS 时最好的方法是啥?【英文标题】:What is the best approch while returning API response to web/Android/iOS?将 API 响应返回到 web/Android/iOS 时最好的方法是什么? 【发布时间】:2019-03-30 06:08:57 【问题描述】:

用例:帖子过滤项。

摘要:帖子将按标签和类别进行过滤。

在这种情况下,我通过端点返回过滤器项目。响应如下。

问题android/ios 开发者不同意此回复。因为如果我返回 KEY(tags/categories) 明智的响应,他们 需要创建 2 个额外的 CLASS,这是静态绑定的成本。另外,如果我添加另一个过滤器项目,例如(评级方式),他们需要再次执行。

我的回应:


    "status" : true,
    "code"   : 200,
    "data"   : 
        "tags" : 
            "filterTitle" : "Search By TAGS",
            "lists"       : [
                
                    "tagId" : 1,
                    "tagName" : "AWS"
                ,
                
                    "tagId" : 2,
                    "tagName" : "php"
                ,
                
                    "tagId" : 3,
                    "tagName" : "ASP"
                
            ]
        ,
        "categories" : 
            "filterTitle" : "Search By Category",
            "lists"       : [
                
                    "catId"   : 10,
                    "catName" : "Web Services"
                ,
                
                    "catId"   : 20,
                    "catName" : "Programming"
                ,
                
                    "catId"   : 30,
                    "catName" : "Tools"
                
            ]
        
    ,
    "message" : "successfull"

需要 Android/iOS 开发人员:


    "status" : true,
    "code"   : 200,
    "data"   : [
        
            "filterTitle" : "Search By TAGS",
            "lists"       : [
                
                    "tagId" : 1,
                    "tagName" : "AWS"
                ,
                
                    "tagId" : 2,
                    "tagName" : "PHP"
                ,
                
                    "tagId" : 3,
                    "tagName" : "ASP"
                
            ]
        ,
        
            "filterTitle" : "Search By Category",
            "lists"       : [
                
                    "catId"   : 10,
                    "catName" : "Web Services"
                ,
                
                    "catId"   : 20,
                    "catName" : "Programming"
                ,
                
                    "catId"   : 30,
                    "catName" : "Tools"
                
            ]
        
    ],
    "message" : "successfull"

【问题讨论】:

如果此时不需要,您应该添加所有过滤器项目,您应该将 null 传递给“明智的评级”,因为您说过应用程序开发人员会为 json 添加模型类,因此将来如果您通过评级发送结果他们不需要创建类或他们已经有一个 【参考方案1】:

为什么不设计 API 来进行过滤。我知道数据不会太多,所以你不会想这样做,但如果是这种情况,上述任何实现都很好,是的,它们是正确的,它们将需要为每种新的过滤器类型添加额外的类。

【讨论】:

这两个我都知道。问题是当我将其转换为 android/iOS 开发人员需要时,我需要准备对象数组并删除模型名称,这将是 HTTP 调用响应的成本。

以上是关于将 API 响应返回到 web/Android/iOS 时最好的方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

SonataUserBundle Api 响应返回空 JSON

如何将标头从请求传递到集成响应?

如何将在 Lambda 上使用 NodeJS 丰富的对象返回到 API POST 请求

如何将 ASP.NET Core 5 Web API 控制器操作的失败模型验证结果包装到另一个类中并将响应返回为 OK

根据 API 的响应异步更新进度条

在 ASP.NET Web API 中立即返回 HTTP 响应