Heim > Backend-Entwicklung > Golang > Wie lege ich Header-Schlüssel und -Werte mit dem Go-Paket fest: shurcooL/graphql oder hasura/go-graphql-client?

Wie lege ich Header-Schlüssel und -Werte mit dem Go-Paket fest: shurcooL/graphql oder hasura/go-graphql-client?

WBOY
Freigeben: 2024-02-05 22:36:11
nach vorne
798 Leute haben es durchsucht

如何使用 go 包设置标头键和值:shurcooL/graphql 或 hasura/go-graphql-client?

Frageninhalt

Ich möchte also Shurcool oder Hasura Go Client (Go-Paket) verwenden, um Daten vom Graphql-Server über Go abzufragen, aber der Datenserver benötigt Schlüssel und Werte wie „x-hasura-admin-“ Geheimnis“ im Anforderungsheader enthalten.

In keiner der Paketdokumentationen wird erwähnt, wie das geht (Festlegen von Header-Schlüsseln und -Werten), sondern nur, wie das Zugriffstoken festgelegt wird.


Richtige Antwort


Der von https://www.php.cn/link/b93f552915e01e40fb9b66d6fd114f7b bereitgestellte Client verfügt über eine withrequestmodifier-Methode. Sie können einen Anforderungsheader wie folgt hinzufügen:

import (
    "net/http"
    graphql "github.com/hasura/go-graphql-client"
)

func gqlinit() {
    client := graphql.newclient("your graphql url here", nil)
    client = client.withrequestmodifier(func(r *http.request) {
        r.header.set("x-hasura-admin-secret", "secret")
    })
}
Nach dem Login kopieren

Schauen Sie sich https://www.php.cn/link/3a5f9129110203548b21c0e40e9cd7af und die zugehörige Github-Bibliothek an. Es sieht so aus, als ob sie möchten, dass Sie ein *http.client übergeben, um den Header für Sie hinzuzufügen. Sie können Folgendes tun:

import (
    "net/http"
    graphql "github.com/shurcooL/graphql"
)

type hasuraAuthTransport struct {
    secret string
}

func (h hasuraAuthTransport) RoundTrip(req *http.Request) (resp *http.Response, err error) {
    req.Header.Set("x-hasura-admin-secret", h.secret)
    return http.DefaultTransport.RoundTrip(req)
}

func gqlInit() {
    client := graphql.NewClient("your graphql url here", &http.Client{
        Transport: hasuraAuthTransport{secret: "secret"},
    })
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie lege ich Header-Schlüssel und -Werte mit dem Go-Paket fest: shurcooL/graphql oder hasura/go-graphql-client?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage