如何在Armeria服务器的http路径中包含':' ?



我想创建一个类似于这样的端点:

POST /someresource:validate

基于Google API的自定义方法指南。

但是当我添加它时,我得到了这个错误:

Exception in thread "main" java.lang.IllegalArgumentException: pathPattern: /someresource:validate (invalid pattern)

我认为这是因为路径模式语法。是否有一种方法来配置,以便我们可以禁用一些语法选项,以便我们可以在url名称内使用:?还是有别的办法。

不幸的是,我认为目前最好的解决方法是做以下事情:

sb.serviceUnder("/resource", (ctx, req) -> {
final String nameAndVerb = req.path().substring(req.path().lastIndexOf('/') + 1);
System.out.println(nameAndVerb);
return HttpResponse.of(200);
});

我希望像下面这样的工作,但似乎有一个内部错误。

sb.service("exact:/resource/name:customVerb", (ctx, req) -> HttpResponse.of(200));

我已经为此提交了一个问题。https://github.com/line/armeria/issues/4577

最新更新