Создайте простой Restful API, используя golang Gin Framework и MongoDB

Мне нужно создать простой спокойный API, используя структуру golang Gin и используя MongoDB. Я новичок в среде golang и Gin. Есть ли какой-либо учебник или какой-либо пример кода, на который я могу сослаться?


person Nuwan Indika    schedule 10.02.2016    source источник


Ответы (1)


Джин довольно гибкий, вы можете смешивать его практически с чем угодно.

Вот пример кода для подключения к MongoDB:

const (
    // Timeout after N seconds
    connectionTimeout   = 5
    connectionTemplate  = "mongodb://%s:%s@%s"
    MONGODB_USERNAME    = ""
    MONGODB_PASSWORD    = ""
    MONGODB_ENDPOINT    = ""
)

// getConnection - Retrieves a client for MongoDB
func getConnection() (*mongo.Client, context.Context, context.CancelFunc) {
    connectionURI := fmt.Sprintf(connectionTemplate, MONGODB_USERNAME, MONGODB_PASSWORD, MONGODB_ENDPOINT)

    client, err := mongo.NewClient(options.Client().ApplyURI(connectionURI))
    if err != nil {
        log.Println("Failed to create client: %v", err)
    }

    ctx, cancel := context.WithTimeout(context.Background(), connectionTimeout*time.Second)

    err = client.Connect(ctx)
    if err != nil {
        log.Println("Failed to connect to cluster: %v", err)
    }

    // Ping to verify the connection
    err = client.Ping(ctx, nil)
    if err != nil {
        log.Printf("Failed to ping cluster: %v", err)
    }

    fmt.Println("Connected to MongoDB")
    return client, ctx, cancel
}

Этот пост в блоге содержит больше примеров кода и другую информацию, которая может помочь: https://blog.codecentric.de/en/2020/04/golang-gin-mongodb-building-microservices-easily/

person AbsentBird    schedule 09.07.2021