【问题标题】:Unable to understand the cURL invocation无法理解 cURL 调用
【发布时间】:2014-10-29 22:11:32
【问题描述】:

我目前正在使用 jpmml openscoring REST API..

我已经成功安装了 Maven 并构建了 uber-JAR 文件,我也可以访问了

http://localhost:8080/OpenScoring/rules.pmml 

我对

给出的说明感到困惑

https://github.com/jpmml/openscoring.

它说示例 curl 调用是

curl -X GET htttp://localhost:8080/openscoring/model

但当我尝试实现此功能时,我收到了 404 错误。这里的model是什么意思?

当我实现这个时,我得到了一个输出:

curl -X GET htttp://localhost:8080/Openscoring/rules.pmml

【问题讨论】:

  • 他们在 readme.md 文件中对所有 REST 端点都有很好的描述,上面几个块你提到的例子。获得 404 要么意味着您没有模型,要么您的网址中有拼写错误。也许本地主机中的第一个 l 丢失了。
  • 不,l 没有丢失。我在这里写的时候故意删除了它,因为 stackoverflow 不接受带有 localhost:8080 的链接。你仔细观察,我也写了http的http的htttp insted
  • 部署了模型吗?如果您尝试部署一个会发生什么?这是使用PUT 而不是GET 的相同URL,并且需要根据文档管理员权限。关于您的问题 model 在这里是什么意思。它只是 ReST 资源的端点。如果您使用GET 调用openscoring 服务,它会返回(应该)所有模型。文档没有说明在没有部署模型的情况下返回什么。
  • 目前,我没有管理员权限。文档说,尽管没有管理员权限,但我可以使用 /model/{id} 端点进行 POST。但是当我将 POST 与 /model/{id} 端点一起使用时,我收到了一个错误。但是当我使用仅以 OpenScoring/rules.pmml 作为终点的帖子时,我得到了一个结果
  • 如果作为示例给出的所有 URL 都可以在没有 model 的情况下工作,那么文档似乎没有(正确地)描述您的版本 - 只需忽略 model。如果您在文档末尾尝试客户端示例,会发生什么情况。他们是否在网址中使用或不使用model

标签: rest pmml


【解决方案1】:

路径的/model/ 部分标识资源类型。 Openscoring 服务 URL 的路径组件的通用公式为/<context path>/<resource type>/<resource identifier>/<action>

在您的情况下(假设模型标识符是rules.pmml),正确的路径组件应该是/openscoring/model/rules.pmml

【讨论】:

  • 对不起,那是错误的。 /model 是某种东西,我称之为“模型列表”。 /model/${id}是单个模型的资源/表示/model/${id}/schemaid标识的具体模型的数据模式的资源。这不是一个动作。
【解决方案2】:

我收到了 404 错误,因为我没有将我的 rules.pmml 文件放在我的命令提示符指向的目录中。(这是一个非常愚蠢的错误)

感谢 cmets 中的用户 Anik Islam Abhi,我发现了调用中的模型

curl -X GET htttp://localhost:8080/openscoring/model 的意思。

model 只是 REST 源的 Endpoint,而不是 openscoring 文件夹中的目录或任何类型的路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多