Artifactory API AQL "Displaying Specific Fields"



根据下面的链接,Artifactory AQL允许通过REST API仅返回感兴趣的字段来"显示特定字段"。https://www.jfrog.com/confluence/display/RTF/Artifactory+查询+语言#工件查询语言显示指定字段

如果我提供一个字段列表,它就不起作用,请参阅下面的

不工作-错误请求(400(

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

工作

items.find(…(.include("*"(

有人能建议吗

谢谢,Jag

我怀疑问题与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'查询

在结果中,您将得到:

    {
        "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
            }
    }

正如您所看到的,结果只包含"项目回购"one_answers"项目名称"字段。

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

对于一个错误的请求(400(,我打印了响应文本:"由于权限原因,AQL需要以下字段:repo、路径和名称。">

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

最新更新