我有一个Web应用程序,它有如下的JS代码(使用Backbone.JS作为模型);
var StudentDemographic = BaseModel.extend({
idAttribute: 'studentId',
url: 'api/list/student/demographic',
urlRoot: 'api/list/student/demographic',
defaults: {
gender: null,
age: null,
dob: null,
}
});
现在,有一个对Java(REST资源)的调用,我无法理解它到底是如何调用的。
@Path("/list")
public class StudentListResource extends BaseResource {
@GET
@Path("/student/demographic")
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
@Override
public StudentDemographic getStudentDemographic(@QueryParam("StudentId") String StudentId) {
}
}
我的问题是JS调用api/list/student/demographic和相应的Java方法之间的Map是如何实现的。这是由Java库内部处理的,还是我需要在我的项目中查找一些配置?(我喜欢前端开发,所以对后端集成不是很清楚)。
我也很想了解Java代码中的行@GET,@PUT,@Override等(比如它们是什么意思)。
1条答案
按热度按时间qgelzfjb1#
看起来像REST应用程序。
Map由您的Web应用程序容器完成(Java EE/Spring/...),确切的配置可能会有所不同。(在这里,类StudentListResource处理去往/list的请求,而具体方法getStudentDemographic则处理“相对URL”/student/demographic,因此一起处理/list/student/demographic.此URL相对于您的Web应用程序,我假设它被称为“api”(或者至少被Map到/api/**)
@GET注解只是说它只处理HTTP GET请求,类似于@PUT、@POST等
@Consumes和@Produces指定输入和输出应该是JSON,然后Map到Java对象,方法的输入来自查询(@QueryParam)
@Override只是java语言的注解,表示这个方法是从超类覆盖的,对于Map没有特殊的意义。