示例,我有一个mvc视图,需要来自Student,Teacher&类实体。如果web api有三个不同的Get,还有一个涉及Get吗?那就是:
(注意 - 语法可能有点,这些只是示例)
WebApi -
public Student GetStudent(int StudentId)
{
// get student from db logic ;
}
public Teacher GetTeacherByStudent(int StudentId)
{
// get teacher from db logic ;
}
public IEnumerable<Class> GetClassesByStudent(int StudentId)
{
// get classes from db logic ;
}
然后在Web前端,我将所有数据组合到一个视图模型中并将其发送到视图。
public StudentDetailDTO GetStudentDetail(int studentId)
{
var data = _db.Student.Where(s => s.StudentId == studentId).Include(s => s.Teacher).Include(s => s.Class).ToList();
StudentDetailViewModel vm = new StudentDetailViewModel()
{
// map data to a viewmodel
}
return View(vm);
}
或者我应该在web api中使用GetStudentDetial方法并将所有数据作为一个返回?
所有获取都将在Web Api中,因为它们在不同的实例中使用。
单独发送数据会保持api的通用性,因此它对我将来构建的其他应用程序更有用,并将使用这些数据。但来回服务器的内容要多得多,而只需一次就可以获得所有内容。