Через команду go get:
go get -u github.com/gqlengine/gqlengine
Напишите main.go:
package main
import (
"net/http"
"github.com/gqlengine/gqlengine"
)
// MyInfo определяет структуру данных бизнес-логики
type MyInfo struct {
gqlengine.IsGraphQLObject `gqlDesc:"my info"` // gqlDesc используется для генерации описательной информации
MyStringField string // определение поля, gqlengine автоматически сопоставит его с типом GraphQL на основе базового типа Golang
MyIntField int `gqlRequired:"true"` // gqlRequired используется для пометки этого поля как обязательного и непустого
}
// MySimpleQuery — это конкретная реализация кода бизнес-логики
func MySimpleQuery() (MyInfo, error) {
panic("not implemented")
}
func main() {
engine := gqlengine.NewEngine(gqlengine.Options{
Tracing: true, // включить функцию анализа цепочки вызовов GraphQL
})
engine.NewQuery(MySimpleQuery) // обязательно зарегистрируйте свой интерфейс!
// инициализация engine
if err := engine.Init(); err != nil {
panic(err)
}
// обслуживание HTTP
http.HandleFunc("/api/graphql", engine.ServeHTTP)
if err := http.ListenAndServe(":8000", nil); err != nil {
panic(err)
}
}
Это базовая конфигурация. После выполнения команды go run main.go
вы можете получить доступ к API GraphQL по адресу http://localhost:8000/api/graphql.
Если вы хотите иметь инструмент, похожий на Swagger, для просмотра и отладки API, у нас есть не только он, но и более совершенная функция GraphQL Playground. Просто добавьте ещё один пакет:
go get -u github.com/gqlengine/playground
Затем добавьте следующий код в main():
...
import (
"github.com/gorilla/mux"
"github.com/gqlengine/playground"
)
...
func main() {
... // инициализируйте ваш gql engine
// настройте конечную точку GraphQL для Playground (по крайней мере, пусть Playground знает, куда идти за данными GraphQL)
playground.SetEndpoints("/api/graphql", "/api/graphql/subscriptions")
// рекомендуется использовать 'gorilla/mux' для обслуживания веб-ресурсов Playground
r := mux.NewRouter()
r.HandleFunc("/api/graphql", engine.ServeHTTP)
r.HandleFunc("/api/graphql/subscriptions", engine.ServeWebsocket)
r.PathPrefix("/api/graphql/playground").
Handler(http.StripPrefix("/api/graphql/playground",
http.FileServer(playground.WebBundle)))
println("open playground http://localhost:9996/api/graphql/playground/")
if err := http.ListenAndServe(":9996", r); err != nil {
panic(err)
}
}
Откройте браузер по адресу: http://localhost:9996/api/graphql/playground.
Если вам нравится наш открытый исходный код и он оказался полезным, пожалуйста, отсканируйте QR-код ниже, чтобы поддержать нашу работу чашкой кофе.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )