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设计是否有很好的参考?


我通常发现在我的应用程序中不会将我的API响应转换为不同格式很有帮助。 如果嵌套结构在你的页面上很有用,并且它在其他地方会继续有用,那我就坚持下去。 您不希望处于您将每个页面上的API响应从一种格式转换为另一种格式的情况,因此请使用具有凝聚力且易于理解的内容。

国际海事组织,嵌套结构看起来更好,因为你不必在前端做分组和关联。 如果可能的话,我倾向于更喜欢当我的API响应需要非常少的“按摩”以在我的页面上下文中工作。

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


如果您使用JSON,那么“application / hal + json”标准绝对值得关注。

你可以在这里阅读所有的细节:http://tools.ietf.org/html/draft-kelly-json-hal-05

Matthew Weier O'Phinney也提供了一个非常好的演示,演示了如何将PHP与后端一起使用:http://www.zend.com/en/resources/webinars/(向下滚动到“构建RESTful ZF2应用程序“网络研讨会)。

基本上它是一组允许在响应中链接和嵌入数据的约定,这正是您在此需要的。

希望有所帮助!

链接地址: http://www.djcxy.com/p/48065.html

上一篇: AngularJS Data Structure: Client side or API?

下一篇: AWS API Gateway CORS ok for OPTIONS, fail for POST