我有一个自定义Rest扩展,WS同时具有GET和POST。我注意到自定义休息端点不接受Content-type:application/x-www-form-urlencoded
。为什么会这样?如何允许我的自定义休息端点接受Content-type:application/x-www-form-urlencoded
。
而且开箱即用的搜索端点v1/search
反之亦然,它不接受Content-type:multipart/form-data
..
我注意到的另一件事是,在我发送rs:start=1
时,在自定义休息端点中,它将其视为xs:string
..但在开箱即用的端点start=1
中,它会转换为{ {1}} ..我正在挖掘开箱即用的实际代码,无法找到隐式转换的位置。
答案 0 :(得分:1)
资源服务扩展是内置服务的服务器端插件,它支持预定义的HTTP请求,并为您调解HTTP交互的内务管理。
如果您希望自定义端点完全控制HTTP交互,最好的方法是为同一内容数据库使用单独的应用程序服务器端口。
值可转换为整数这一事实并不能保证该值应转换为整数。应用程序可能需要字符串或双精度。
在自定义代码中,如果值是预期的,则将值设置为整数是微不足道的。
希望有帮助,
答案 1 :(得分:0)
关于参数类型,在安装REST扩展时,可以选择指定类型。见Installing a Resource Service Extension。
答案 2 :(得分:0)
签出fpm + pleaserun: how-to use the .rpm or .deb generated。您可以创建通过XQRS批注接受application/x-www-form-urlencoded
的RESTful服务。
您可以执行内容协商,使用%rest:form-param注释为功能设置约束。
支持%rest:consumes / %rest:produces,包括多个文件上传以及multipart/form-data请求,这些请求会将您的数据转换为所需的MarkLogic / XQuery类型,无论它们是JSON,XML还是sem:triple *等等
该框架足够聪明,可以通过multipart/mixed将查询参数转换为所需的原子XDM类型。
该库是免费的,开源的并且经过了良好的测试。