如何使用 Handler.Abstract 在 Jetty 12 中创建 Rest API

问题描述 投票:0回答:1

Jetty 12 程序员文档有这个:

class RESTHandler extends Handler.Abstract
{
    @Override
    public boolean handle(Request request, Response response, Callback callback)
    {
        // Implement the REST APIs, remembering to complete the callback.
        return true;
    }
}

我想知道如何在上面的块中创建 REST API。

我知道使用 Jersey 和 Servlet Container 是可以创建的。但不确定如何单独使用 Jetty 处理程序创建 REST API。

可能的一种选择是使用 request.getComponents() 解析请求并标记请求参数。

我试图使用:

request.getComponents()
它会像这样返回:
HttpChannelState@d735a98{handling=Thread[server-20,5,main], handled=false, send=SENDING, completed=false, request=GET@0 http://localhost:8080/shop/?id=122&city=new%20york&country=usa HTTP/1.1}

需要帮助请。

提前致谢。

java jetty embedded-jetty jetty-12
1个回答
0
投票

可能的一种选择是使用 request.getComponents() 解析请求并标记请求参数。

request.getComponents()
用于在同一连接上的所有处理程序和请求之间共享的Components。很少需要访问或使用此对象,它的存在是为了集成到云提供商中。

原始查询可在请求的

HttpURI
中找到。

String rawQuery = request.getHttpURI().getQuery();

但是你必须自己解析和 url 解码该字符串。

提供了一种方便的方法来为您做到这一点。

Fields query = Request.extractQueryParameters(request,
    StandardCharsets.UTF_8);

String member = query.getValue("Member");

此片段来自

form-post
示例,位于

请参阅文档,了解有关如何从请求中读取数据并写入响应的其他示例。

© www.soinside.com 2019 - 2024. All rights reserved.