R语言中可否创建无参数plumber API?如何解决404报错问题?
plumber无参数API404问题解答
plumber完全支持开发无参数API,你遇到的404错误和接口是否要求传参没有关联,核心原因是请求方法和接口定义不匹配。
你当前代码里用@post /Test注解标记的是仅接受POST方法的接口:
- 如果你是直接在浏览器地址栏输入接口地址访问,浏览器默认发起GET请求,无法匹配到你定义的POST接口,就会返回404状态码。
你可以根据自己的需求选以下任意一种方案修复:
方案1:将接口改为GET方法(适配直接浏览器访问场景)
如果你的接口不需要传递敏感参数、希望直接在浏览器输入地址就能访问,把@post改成@get即可,修正后完整代码:
library(plumber) #* Test plumber of API with no parameters #* @response default array with corresponding responses #* @serializer unboxedJSON #* @get /Test function(){ return("Hello World!") }
部署后直接访问对应服务地址的/Test路径,无需传入任何参数即可拿到"Hello World!"的返回结果,返回数据框的写法逻辑完全一致,直接在函数里return对应数据框即可。
方案2:保留POST方法,用POST规则发起请求
如果你确实需要定义POST类型的无参数接口,不需要修改现有代码,注意不要直接通过浏览器地址栏访问,改用支持POST请求的工具调用即可,比如用curl调用的示例命令:
curl -X POST http://你的服务IP:端口/Test
调用时不需要携带任何请求参数、请求体,就能正常拿到返回结果。
额外注意:plumber默认的路径匹配区分大小写,/Test和/test会被识别为两个不同的接口,访问时注意路径拼写和注解里的定义完全一致。
内容的提问来源于stack exchange,提问作者QMan5
相关产品推荐
相关产品推荐

