Maison > développement back-end > Golang > le corps du texte

Utilisation d'AWS API Gateway en Go : un guide complet

WBOY
Libérer: 2023-06-17 16:26:19
original
1371 Les gens l'ont consulté

Avec la popularité et le développement du cloud computing, de plus en plus d'applications commencent à faire appel à des fournisseurs de services cloud pour réaliser un déploiement et une gestion efficaces. En tant que l'un des plus grands fournisseurs de services de cloud computing au monde, la passerelle API d'AWS est l'un des composants clés pour la réalisation de services cloud. Cet article explique comment utiliser AWS API Gateway en langage Go pour créer des services cloud efficaces.

Étape 1 : Créer une passerelle API

Avant d'utiliser AWS API Gateway, vous devez créer une passerelle API sur la console AWS. Sélectionnez d'abord le service API Gateway dans la console AWS, puis suivez les instructions pour créer une API. Les étapes pour créer une API incluent la définition du nom de l'API, la création de ressources, la définition des méthodes GET et POST, etc.

Parmi eux, définir le nom de l'API est très simple, il vous suffit de le remplir selon les invites. La création de ressources nécessite de définir des chemins et des méthodes d'URL. Par exemple, vous pouvez définir un chemin d'URL "/hello" et une méthode GET. Ajoutez une certaine intégration à chaque méthode, comme une fonction Amazon Lambda ou un autre service cloud.

Étape 2 : Utiliser API Gateway en Go

L'utilisation d'API Gateway en langage Go nécessite l'utilisation du SDK officiellement fourni par AWS. Tout d'abord, vous devez installer AWS SDK Go, qui peut être téléchargé via les méthodes suivantes :

go get github.com/aws/aws-sdk-go
Copier après la connexion

L'utilisation d'API Gateway dans les programmes Go nécessite l'utilisation de l'API fournie par AWS SDK Go. Vous devez d'abord créer le client API Gateway, par exemple :

import (
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/apigateway"
)

session := session.Must(session.NewSession(&aws.Config{
    Region: aws.String("us-west-2"),
}))
svc := apigateway.New(session)
Copier après la connexion

Après avoir créé le client API Gateway, vous devez définir les ressources et les méthodes dans l'API et la méthode d'intégration, par exemple :

// 资源和方法
id := "abcde12345"
restAPI := "my-restapi-id"
resourcePath := "/hello"
method := "POST"
contentType := "application/json"

// 定义Lambda函数攻略
integration := &apigateway.Integration{
    IntegrationHttpMethod: aws.String("POST"),
    Type:                  aws.String("AWS_PROXY"),
    Uri:                   aws.String("arn:aws:lambda:us-west-2:MyAccount:function:my-lambda-function"),
}

// 添加方法
params := &apigateway.PutMethodInput{
    RestApiId:    aws.String(restAPI),
    ResourceId:   aws.String(id),
    HttpMethod:   aws.String(method),
    AuthorizationType: aws.String("NONE"),
}

_, err := svc.PutMethod(params)
if err != nil {
    panic(fmt.Sprintf("failed to add method to API Gateway, err: %s", err))
}

// 添加Lambda集成方式
params2 := &apigateway.PutIntegrationInput{
    RestApiId: aws.String(restAPI),
    ResourceId:    aws.String(id),
    HttpMethod:    aws.String(method),
    Integration:   integration,
}

_, err2 := svc.PutIntegration(params2)
if err2 != nil {
    panic(fmt.Sprintf("failed to add integration to API Gateway, err: %s", err2))
}

// 添加响应模版
params3 := &apigateway.PutMethodResponseInput{
    RestApiId:         aws.String(restAPI),
    ResourceId:        aws.String(id),
    HttpMethod:        aws.String(method),
    StatusCode:        aws.String("200"),
    ResponseParameters: map[string]*bool{},
    ResponseModels:    map[string]*string{contentType: aws.String("Empty")},
}
_, err3 := svc.PutMethodResponse(params3)
if err3 != nil {
    panic(fmt.Sprintf("failed to add method response to API Gateway, err: %s", err3))
}

// 更新集成响应模版
params4 := &apigateway.PutIntegrationResponseInput{
    RestApiId: aws.String(restAPI),
    ResourceId:        aws.String(id),
    HttpMethod:        aws.String(method),
    StatusCode:        aws.String("200"),
    ResponseTemplates: map[string]*string{contentType: aws.String("")},
}
_, err4 := svc.PutIntegrationResponse(params4)
if err4 != nil {
    panic(fmt.Sprintf("failed to add integration response to API Gateway, err: %s", err4))
}
Copier après la connexion

Une ressource et une méthode sont défini dans cet extrait de code et ajout de la méthode d'intégration Lambda. Des modèles réactifs et intégrés sont également définis.

Étape 3 : tester la passerelle API

Après avoir terminé la création de la passerelle API et écrit le programme Go, vous devez tester si la passerelle API fonctionne correctement. À l'aide de Postman ou d'un autre client HTTP, vous pouvez envoyer des requêtes à l'API et recevoir des réponses. Par exemple, utilisez la commande suivante pour envoyer une requête POST à ​​l'API :

curl --header "Content-Type: application/json" 
     --request POST 
     --data '{"name":"John","age":30}' 
     https://my-gateway-id.execute-api.us-west-2.amazonaws.com/hello
Copier après la connexion

Après avoir testé avec succès l'API Gateway, vous pouvez déployer l'application Go et l'intégrer à l'API Gateway pour obtenir des services cloud efficaces.

Résumé

Cet article fournit un guide complet sur l'utilisation d'AWS API Gateway en langage Go. Vous devez créer une API Gateway et définir des ressources et des méthodes, des méthodes d'intégration, des réponses et des modèles de réponse d'intégration. Ces tâches peuvent être facilement réalisées à l'aide du kit AWS SDK Go. Après avoir testé API Gateway et intégré votre application Go, vous pouvez créer des services cloud efficaces dans l'environnement cloud AWS.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal