Я пытаюсь отобразить «старый» REST-сервер, используя клиент RESTEasy.RESTEasy, отображающий «наследие» службы REST Moodle
URL-адреса из этого WS отображаются так:
конечная точка всегда server.php, а функция для вызова отображается с помощью queryparam.
@POST
@Path("/server.php")
@Produces("application/json")
List<Map<String, Object>> getCourses(
@QueryParam("wstoken") String token
, @QueryParam("wsfunction") String function
, @QueryParam("moodlewsrestformat") String format);
@POST
@Path("/server.php")
@Produces("application/json")
String createUser(
@QueryParam("wstoken") String token
, @QueryParam("wsfunction") String function
, @QueryParam("moodlewsrestformat") String format
, @Form User user);
, который я называю таким образом
private static void getCourses() {
final MoodleRest client = ProxyFactory.create(MoodleRest.class, "http://localhost/webservice/rest/");
final List<Map<String, Object>> s = client.getCourses(token, "core_course_get_courses", "json");
System.out.println("s = " + s);
}
Давайте игнорировать тот факт, что метод «get_courses» отображается с помощью POST, и что маркер передаются с помощью QueryParameter на эту должность, является возможно ли избежать передачи функции и формата ответа для каждого метода? Я хотел бы сопоставить его с помощью аннотаций.
Я пытался писать непосредственно в @Path с помощью
/server.php?function=core_course_get_courses
Но очевидно, что это не правильный путь, чтобы продолжить (плюс, она не работает, так как это ускользнуло)