【问题标题】:Artifactory API AQL "Displaying Specific Fields"Artifactory API AQL“显示特定字段”
【发布时间】:2015-07-03 10:22:42
【问题描述】:

根据下面的链接,Artifactory AQL 允许通过 REST API 通过仅返回感兴趣的字段来“显示特定字段”。 https://www.jfrog.com/confluence/display/RTF/Artifactory+Query+Language#ArtifactoryQueryLanguage-DisplayingSpecificFields

如果我提供字段列表,它不起作用,见下文

不起作用 - 错误请求 (400)

items.find(...).include("name", "repo")

作品

items.find(...).include("*")

谁能给个建议

谢谢,贾格

【问题讨论】:

标签: artifactory artifactory-query-lang


【解决方案1】:

我怀疑问题与 REST 调用期间的编码有关,因此我建议将查询作为文件上传 这是一个工作示例:

将以下查询保存到文件中,我们称之为 aql.query

items.find     
(                
    {
        "repo": {"$match":"*"}                
    }
)
.include("name","repo")

从包含 aql.query 文件的同一目录运行以下 curl 命令,不要忘记将命令中的模板替换为您的用户名、密码、主机和端口。

curl -X POST -uuser:password 'http://host:port/artifactory/api/search/aql' -Taql.query

在结果中你会得到:

    {
        "results" : 
            [ 
                {
                    "repo" : "ext-snapshot-local",
                    "name" : "maven-metadata.xml"
                },{
                    "repo" : "ext-snapshot-local",
                    "name" : "multi-3.0.0-20150705.195404-1.pom"
                },{
                .
                .
                .
                }
            ],
        "range" : 
            {
                "start_pos" : 0,
                "end_pos" : 46,
                "total" : 46
            }
    }

如您所见,结果仅包含“item repo”和“item name”字段。

【讨论】:

  • 好的,谢谢,但似乎不是那么愉快的解决方法。但是嘿嘿,这就是生活!
【解决方案2】:

有同样的问题。花了相当多的时间试图弄清楚这一点。网上找不到答案。

由于请求错误 (400),我打印了响应文本:“出于权限原因,AQL 需要以下字段:repo、路径和名称。”

这个解决方案对我有用 - 至少:有 repo、路径、名称。 即... items.find(...).include("name", "repo", "path", "created_by")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多