RAML模拟服务POST请求在Mule设计中心显示404错误

时间:2018-03-05 16:23:25

标签: mule api-design raml

我正在使用模拟服务功能来构建和测试其中一个POC的API设计。当从设计中心通过模拟服务发布消息时,我收到HTTP错误代码404。

参见附图:

https://forums.mulesoft.com/storage/temp/6224-test.txt

没有URI参数的GET,PUT和POST请求都运行正常,但每当我尝试使用POST方法显式传递特定的gid或cid时,它都会显示上面的错误。

我正在附加RAML文件:

{{3}}

我在阅读文档时已经了解到,在使用模拟服务测试API时,我们可以传递任何参数值。

您能否帮我找一下,为什么带有特定gid或cid的POST请求返回错误代码?

1 个答案:

答案 0 :(得分:0)

根据附加的sceenshot,您尝试将某些内容发布到API Mock服务的根路径。

而不是删除参数并将HTTP POST请求发送到以下URL:

https://mocksvc.mulesoft.com/mocks/29b2eb87-675e-4aa2-8ae3-c5d13e99e441/

请尝试将URI保持正确的格式:

https://mocksvc.mulesoft.com/mocks/29b2eb87-675e-4aa2-8ae3-c5d13e99e441/groups/{gid}/channels/{cid}/chatthreads

在此URL中,您只需将花括号中的gid和cid参数替换为实际值。

以正确的格式使用您的RAML文件和URI,如以下示例:

https://mocksvc.mulesoft.com/mocks/29b2eb87-675e-4aa2-8ae3-c5d13e99e441/groups/10/channels/5/chatthreads
https://mocksvc.mulesoft.com/mocks/29b2eb87-675e-4aa2-8ae3-c5d13e99e441/groups/10/teams

我得到“204 No Content”:

204 No Content

但是当我删除参数并尝试在错误的路径上执行HTTP POST时,我得到“404 Not Found”:

404 Not Found

根据您提供的屏幕截图;您的HTTP请求中的资源路径未完成。这可能导致HTTP错误代码“404 Not Found”。

请确保在API控制台中设置了资源的完整路径。这需要能够识别您想要POST(创建)的资源。

有关在资源名称中使用特殊字符(如“ - ”或“$”)的详细信息;请参阅raml-js-parser。 API Designer正在使用此解析器。

目前仍存在与处理特殊字符有关的未解决问题,例如' - '。请参阅raml-js-parser的github存储库中的相关错误报告:Resource name is invalid: illegal character #129

我建议在资源名称中不使用特殊字符。 (尽管当前的RFC标准最终允许使用'$')

根据这个;资源名称“$ ref”似乎导致RAML出现问题。请考虑提交bug report for the API designer in their github repository。但问题可能也是由解析器引起的......