AngularJS 数据结构:客户端还是 API?

15 浏览
0 Comments

AngularJS 数据结构:客户端还是 API?

我在AngularJS中有一个原型解决方案,并且它已经使用以下数据结构在工作:

$scope.clients = [
    { client:"Client1", projects:[ 
        { project: "Project1", items:[
            { item: "This is the first item" },
            { item: "This is the second item" }
        ]},
        { project: "Project2", items:[
            { item: "This is the third item" },
            { item: "This is the fourth item" }
        ]}
    ]},
    { client:"Client2", projects:[ 
        { project: "Project4", items:[
            { item: "This is the fifth item" },
            { item: "This is the sixth item" }
        ]}
    ]}
];

我希望实现后端,但我不确定API是否应向客户端提供上述嵌套数据结构,还是应该提供一个项目的扁平结构,然后AngularJS客户端应用程序创建嵌套结构。以下是API将提供的平面结构示例:

[
    { client: "Client 1", project: "Project 1", item: "This is the first item." },
    { client: "Client 1", project: "Project 1", item: "This is the second item.", },
    { client: "Client 1", project: "Project 2", item: "This is the third item.", },
    { client: "Client 2", project: "Project 4", item: "This is the fourth item.", }
];

这个问题的最佳解决方法是什么?此外,是否有任何关于API设计的好参考资料?

admin 更改状态以发布 2023年5月23日
0
0 Comments

我通常觉得在整个应用程序中不要将API响应转换为不同的格式是有帮助的。如果嵌套的结构在你的页面上很有用,并且在其他地方也将继续有用,那么我会坚持使用它。你不想处于一个情况下,即在使用它的每个页面上将API响应从一种格式转换为另一种格式,因此选择一些具有连贯性并且易于理解的东西。

在我看来,嵌套结构看起来更好,因为你不必在前端进行分组和关联。如果可能,我倾向于希望我的API响应在页面上的上下文中需要很少或没有“揉捏”来发挥作用。

就API设计而言,如果您正在寻找一些标准,这个问题的答案有一些关于标准API设计和响应格式的好参考资料。

0
0 Comments

如果你需要处理JSON格式的数据,那么“application/hal+json”标准绝对值得一看。

你可以在这里阅读所有详细信息:https://datatracker.ietf.org/doc/html/draft-kelly-json-hal-05

Matthew Weier O'Phinney有一份非常好的演示文稿,其中包含如何在PHP后端中使用这种格式的样本代码: http://www.zend.com/en/resources/webinars/(滚动到“构建RESTful ZF2应用程序”网络研讨会即可)。

基本上,这是一组惯例,允许您在响应中链接和嵌入数据,这正是你在这里所需要的。

希望这些信息有帮助!

0