Можно ли получить ответ GraphQL без иерархического беспорядка?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Можно ли получить ответ GraphQL без иерархического беспорядка?

Сообщение Anonymous »

Я пытаюсь выполнить несколько запросов GraphQL к API GitHub.
Например, следующий запрос вернет содержимое файла README.md репозитория:

Код: Выделить всё

query GetReadmeMD($owner: String!, $repo: String!) {
repository(owner: $owner, name: $repo) {
object(expression: "HEAD:README.md") {
... on Blob {
text
}
}
}
}
Или, скорее, он вернет объект JSON, который в глубине содержит README:

Код: Выделить всё

{
"data": {
"repository": {
"object": {
"text": "# My project's README [...]"
}
}
}
}
Есть ли какой-нибудь способ пропустить весь иерархический беспорядок и просто получить то, что меня действительно интересует (желательно с помощью необработанного POST, но использование библиотек Python также допустимо), вот так :

Код: Выделить всё

{
"text": "# My project's README [...]"
}
Решение должно позволять указывать несколько различных «интересующих значений».
Лучшее, что мне удалось до сих пор, это:
Лучшее, что мне удалось на данный момент:
p>
  • использовать псевдонимы с известным префиксом, чтобы «пометить» все значения, представляющие интерес в моем запросе
  • пройтись по выходным данным и «собрать» все значения с этим префиксом (в Python)
Изменив приведенный выше запрос, чтобы он также собирал количество открытых PR, и добавив префикс к обоим значениям интерес с FOO_:

Код: Выделить всё

query GetReadmeMD($owner: String!, $repo: String!) {
repository(owner: $owner, name: $repo) {
pullRequests(states: OPEN) {
FOO_n_open_prs: totalCount
}
object(expression: "HEAD:README.md") {
... on Blob {
FOO_readme: text
}
}
}
}
Затем я могу проанализировать выходные данные и сохранить только ключи с этим префиксом (при этом сам префикс будет удален):

Код: Выделить всё

{
"n_open_prs": 42,
"readme": "# My project's README [...]"
}
Однако это решение кажется неуклюжим и неуклюжим... Мне интересно, не знаю ли я чего-то базового о графе QL (вполне вероятно, поскольку я начал изучать его на этой неделе), или я изобретаю худшую версию колеса.


Подробнее здесь: https://stackoverflow.com/questions/783 ... al-clutter
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»