«Правильный» способ реализации службы API REST с использованием JBoss AS - PullRequest
0 голосов
/ 09 июля 2010

Я начал новую работу в компании, которая любит использовать слово «предприятие». Таким образом, все, что они написали, написано на Java. Я очень опытный веб-разработчик, в основном работающий со стеками LAMP.

Теперь, до тех пор, пока три дня назад я ничего не знал о Java, кроме людей, которые ее использовали и что это язык программирования. Погуглив на нем, сам язык Java кажется достаточно простым. Однако, когда люди говорят «Java», кажется, что они имеют в виду нечто большее, чем просто язык, такой как различные платформы и серверы приложений. Это немного излишне, и у меня возникли некоторые проблемы, связанные с «Java».

В предстоящем проекте я создаю открытый REST API для одного из продуктов. Кажется, достаточно просто. Однако у меня есть несколько вопросов о том, как поступить ....

Я работаю с JBoss AS впервые; Я не уверен, что в PHP есть эквивалент, поэтому я могу понять, что именно делает JBoss, но я подозреваю, что есть «правильный» способ делать вещи. Вот что я хотел сделать:

1) Создан пакет с одним сервлетом, например:

package com.awesome.myrestapi;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HiggiltyServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public HiggiltyServlet() {
        super();
    }

    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();

        // @todo ideally, do something more RESTfully useful and less vindictive
        out.println( "<html><body>HAHA!  all ur api requests are belong to us</body></html>" );
        out.close();
    }

}

2) Как вы видите, я думал о переопределении метода service для обслуживания моих запросов REST API.

3) Соответственно обновил мой файл web.xml, чтобы шаблон URL совпал с "higgilty", что сделало мою конечную точку URL чем-то вроде ....

http://localhost/awesomeproject/higgilty

Теперь я чувствую, что могу делать что-то не так. Я иду по этому пути правильно, или я совершенно не в курсе?

Любая помощь очень ценится.

Ответы [ 2 ]

3 голосов
/ 09 июля 2010

Вам, вероятно, следует использовать REST-ориентированную среду, такую ​​как Restlet , Джерси или RESTeasy .Это поможет вам разобраться с различными вещами, такими как разделение URI, наличие системы, основанной на ресурсах и представлениях, и, возможно, согласование типа содержимого (если вам это нужно).

Рестлеты могут запускаться в контейнере сервлетов или как автономные приложения.,RESTeasy - это проект JBoss, но я бы не стал отказываться от других платформ только из-за этого, поскольку JBoss AS в принципе должен иметь возможность запускать приложения, написанные с помощью других платформ (я успешно запустил приложения Restlet в JBoss AS, хотяЯ не пользуюсь этим регулярно).

1 голос
/ 10 июля 2010

Согласовано, что лучше всего использовать фреймворк.

Если вы хотите свернуть свое собственное, вам нужно написать что-то, чтобы разобрать URL и направить к соответствующему методу. Шаблон URL, соответствующий шаблону web.xml, довольно ограничен.

Также вы, вероятно, захотите переопределить методы HttpServlet, которые соответствуют методам HTTP - doGet, doPost и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...