在JavaEE中创建Web服务

时间:2016-03-31 16:15:07

标签: java web-services

我不熟悉使用Java创建Web服务,这就是问题。

我有一个对象,

public class Course {

    private int _id;
    private String _name;
    private Person _person;
}

我有关于存储在文件中的对象的数据,我已经将其解析并存储在本地数组列表中。

我的DataService对象执行此操作。

public DataService(){

        _personList = new ArrayList<>();
        _courseList = new ArrayList<>();

        //logic to parse data and read into a QueryHandler object.

        _handler = new QueryHandler(_personList, _courseList);

    }

现在这个数据服务有一个GET方法,显示所有课程的列表。

   @GET
    @Produces("application/JSON")
    public ArrayList<Course> getAllCourses(){
        return _handler.getAllCourses();

    }

我的问题是如何将此方法公开为端点,以便调用者可以获得example.com/getAllCourses之类的链接或example.com/getCourseById/21之类的链接(已创建的方法),它将返回JSON中的数据格式?

1 个答案:

答案 0 :(得分:1)

您必须将@Path("/course")添加到您的班级,并将您的方法更改为

@GET
@Path("/getAllCourses")
@Produces("application/JSON")
public ArrayList<Course> getAllCourses(){
    return _handler.getAllCourses();

}

如果你想获得一个特定的id,你会写

@GET
@Path("getCourseById/{id}")
@Produces("application/JSON")
@Consumes("application/JSON")
public Course getCourseById(@PathParam("id") int id){
    return _handler.getCourseById(id);

}

路径例如为host.com/course/getAllCourseshost.com/course/getCourseByid/1

以下是关于它的文档JAX-RS