Python имеет минималистичный и элегантный веб-интерфейс, который называется WSGI .Самое простое из возможных приложений выглядит так:
def simple_app(environ, start_response):
status = '200 OK'
response_headers = [('Content-type', 'text/plain')]
start_response(status, response_headers)
return ['Hello world!\n']
environ
- это что-то вроде объекта запроса, а start_response
- это функция для установки резонансных заголовков.Тело ответа - это итеративный объект, здесь список с одной строкой ('Hello world! \ N').Этот простой интерфейс объединяет то, что делается в Java, с сервлетами и фильтрами.
Интересно, можно ли что-то подобное написать на Java.Я ожидаю, что возврат итератора в Java будет медленнее, чем использование потока.Поэтому я думаю, что передача OutputStream (обернутая в объект ответа), как это делает Servlet API, является лучшим решением.Это выглядело бы так:
public interface Handler {
void handle(Request req, Response res);
}
Однако я бы предпочел, чтобы ответ был возвращен:
public interface Handler {
Response handle(Request req);
}
Но тогда единственным способом передачи в OutputStream был быRequest (Request # createResponse ()).
Действия ASP.NET возвращают "Result" объекты, но я не знаю много об этом и не знаю, как потоковая передача выполняетсяфреймворк.Как бы вы сделали нечто подобное в Java?
Я с нетерпением жду ваших идей для простого и элегантного веб-API Java.