Heim > Artikel > Backend-Entwicklung > So erstellen Sie eine Github APIv4 Golang-Abfrage für eine bestimmte Version
php-Editor Youzi zeigt Ihnen, wie Sie eine bestimmte Version der Github APIv4 Golang-Abfrage erstellen. Github APIv4 ist ein leistungsstarkes Abfragetool, das Entwicklern dabei helfen kann, verschiedene Daten auf Github abzurufen und zu verarbeiten. Manchmal müssen wir jedoch möglicherweise eine bestimmte Datenversion abrufen, und die offizielle API stellt eine solche Funktion nicht direkt bereit. In diesem Artikel erfahren Sie, wie Sie mit Golang benutzerdefinierte Abfragen schreiben, um eine bestimmte Datenversion abzurufen.
Bei Verwendung von https://github.com/shurcooL/githubv4 habe ich wirklich Probleme, eine bestimmte Version für das GH-Repository zurückzuholen.
Wenn v3 verfügbar ist, gibt der folgende Codeblock immer nichts zurück:
var releaseQ struct { Repository struct { Release struct { Author githubv4.String } `graphql:"release(tagName:$tagName)"` } `graphql:"repository(owner:$repositoryOwner,name:$repositoryName)"` } variables = map[string]interface{}{ "repositoryOwner": githubv4.String("jacobtomlinson"), "repositoryName": githubv4.String("gha-find-replace"), "tagName": githubv4.String("v3"), } err = client.Query(context.Background(), &releaseQ, variables) if err != nil { fmt.Println("Query returned nothing") } fmt.Println("author:", releaseQ.Repository.Release.Author)
Ich habe die folgenden zwei Codeblöcke für die Repository-Beschreibung und Problemreaktion erfolgreich erhalten:
var repoDescriptionQ struct { Repository struct { Description string } `graphql:"repository(owner: \"jacobtomlinson\", name: \"gha-find-replace\")"` }
Dies gibt die Repository-Beschreibung erfolgreich zurück ^
variables := map[string]interface{}{ "repositoryOwner": githubv4.String("jacobtomlinson"), "repositoryName": githubv4.String("gha-find-replace"), "issueNumber": githubv4.Int(55), "reactionContent": githubv4.ReactionContentThumbsDown, } var reactionQ struct { Repository struct { Issue struct { ID githubv4.ID Reactions struct { ViewerHasReacted githubv4.Boolean } `graphql:"reactions(content:$reactionContent)"` } `graphql:"issue(number:$issueNumber)"` } `graphql:"repository(owner:$repositoryOwner,name:$repositoryName)"` }
Die Antwort wurde erfolgreich erhalten^
Es wurde festgestellt, dass das Feld „Autor“ keine Zeichenfolge, sondern vom Typ „Benutzer“ ist. Ändern Sie das angeforderte Feld in „Beschreibung“, bei dem es sich um eine Zeichenfolge handelt, die die Buchungsinformationen zurückzieht. Wenn Sie wirklich Autoren benötigen, müssen Sie Benutzer definieren:
var releaseQ struct { Repository struct { Release struct { Description githubv4.String } `graphql:"release(tagName:$tagName)"` } `graphql:"repository(owner:$repositoryOwner,name:$repositoryName)"` }
Das obige ist der detaillierte Inhalt vonSo erstellen Sie eine Github APIv4 Golang-Abfrage für eine bestimmte Version. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!