backbone.js 从JavaScript调用REST资源

rekjcdws  于 2022-11-10  发布在  Java
关注(0)|答案(1)|浏览(174)

我有一个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等(比如它们是什么意思)。

qgelzfjb

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没有特殊的意义。

相关问题