Artifactory API AQL, отображающий определенные поля

Согласно приведенной ниже ссылке, Artifactory AQL позволяет «Отображать определенные поля» через REST API, возвращая только интересующие поля. https://www.jfrog.com/confluence/display/RTF/Artifactory+Query+Language#ArtifactoryQueryLanguage-DisplayingSpecificFields

Это не сработает, если я предоставлю список полей, см. Ниже

Не работает - неверный запрос (400)

items.find (...). include ("имя", "репо")

Работает

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

Кто-нибудь может посоветовать

Спасибо, Джаг


person Jag Thind    schedule 03.07.2015    source источник
comment
Мне нужно было сделать еще один запрос на получение свойств элемента, используя jfrog.com/confluence/display/RTF/   -  person Jag Thind    schedule 07.07.2015


Ответы (2)


Я подозреваю, что проблема связана с кодированием во время вызова REST, поэтому предлагаю загрузить запрос в виде файла Вот рабочий пример:

Сохраните следующий запрос в файл, назовите его aql.query

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

Выполните следующую команду curl из того же каталога, в котором находится файл aql.query, и не забудьте заменить шаблоны в команде своим именем пользователя, паролем, хостом и портом.

curl -X POST -user: 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
            }
    }

Как видите, результат содержит только поля «репо элемента» и «имя элемента».

person Gidi.S    schedule 12.07.2015
comment
хорошо, спасибо, но, похоже, это не очень приятный способ решения проблемы. Но привет, это жизнь! - person Jag Thind; 13.07.2015

Была такая же проблема. Потратил довольно много времени, пытаясь понять это. Не удалось найти ответ в Интернете.

При неверном запросе (400) я напечатал текст ответа: «По причинам разрешений AQL требует следующих полей: репо, путь и имя».

Это решение сработало для меня - как минимум: иметь репо, путь, имя. т.е. ... items.find (...). include ("имя", "репо", "путь", "created_by")

person Ken T    schedule 25.11.2015