我想基于例如任何js框架实现SPA。 Angular JS。我已经有许多现有的Web API,其中包含我需要在app上显示的信息。我必须再添加1个将管理新信息。新的将引用其他Dtos。我的问题是,更好的方法是调用API并在Web应用程序上编译Dto或在新API中调用API合并所有数据并使用ready对象创建GET方法。
从网站角度来看第一方法:
@IBAction func editItemDetail(segue: UIStoryboardSegue) {
if let editItemViewController = segue.source as? EditItemViewController {
// Save the edited item to the struct and update the plist
if let changedItem = editItemViewController.editedItem {
items.remove(at: editKey)
items.insert(changedItem, at: editKey)
// Update the plist
itemPlistUpdate()
}
}
}
合并Angular Js Web中的所有数据
从网站角度来看第二方法:
合并Order Web API上的所有内容
Call (i know userId - based on logged in user [in this example = 1])
/get/order/{userId}
{
UserId: 1
Products:{1,2}
}
based on that call:
/get/user/1
{
FirstName: test,
LastName: test
}
/get/product/1
{
Price: 10,
Name: Test
}
/get/product/2
{
Price: 100,
Name: Test2
}
我附上截图以更好地概述。
答案 0 :(得分:0)
这是可重用性和专业化之间的权衡。可重用性带来了明显的优势 - 您可能最终不得不做更少的工作。通过专业化,您的前端可以按原样使用API。通过专业化,您也只会加载实际需要的数据,而对于许多独立的API,可能会有冗余数据,可能会略微增加开销。
我真的不认为有一种方法比另一种更好。这一切都取决于它是否适合您的具体情况。我认为你应该选择每个案例的方法。如果某些端点无论如何都没有被重用,那么您也可以创建一个"合并" /专用版本,您可以在一个调用中获得所有内容。在您的应用程序的其他部分,您可能有更可重用的端点,因此您坚持使用它们,并做更多的事情"处理"客户端。
关于性能(单个API调用与多个),HTTP / 2协议可能会有一点点轻微支持多个较小的API端点。
对于Angular而言,一种方法是否优于另一种方法,并不重要。 Angular并不关心。 : - )