Olá, pessoal! Hoje vou compartilhar com vocês como criar duas APIs em Go e utilizar o KrakenD para fazer o merge de informações. Vamos lá!
Configuração do ambiente
Certifique-se de ter o Go instalado em seu sistema. Você pode baixar a versão mais recente do site oficial. Além disso, vamos utilizar o KrakenD como nosso gateway API. Você pode encontrar o KrakenD em https://www.krakend.io/.
Criando as APIs
Vamos criar duas APIs simples em Go. Para fins de demonstração, uma API fornecerá informações de usuários e a outra fornecerá informações de produtos. Vamos chamá-las de "user-api" e "product-api", respectivamente.
Dentro do diretório do projeto, crie uma pasta chamada "user-api" e outra chamada "product-api". Em cada pasta, crie um arquivo "main.go" com o seguinte conteúdo:
user-api/main.go:
package main
import (
"encoding/json"
"fmt"
"log"
"net/http"
)
type User struct {
ID int `json:"id"`
Name string `json:"name"`
}
func getUser(w http.ResponseWriter, r *http.Request) {
user := User{
ID: 1,
Name: "John Doe",
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(user)
}
func main() {
http.HandleFunc("/user", getUser)
log.Fatal(http.ListenAndServe(":8080", nil))
}
product-api/main.go:
package main
import (
"encoding/json"
"fmt"
"log"
"net/http"
)
type Product struct {
ID int `json:"id"`
Name string `json:"name"`
}
func getProduct(w http.ResponseWriter, r *http.Request) {
product := Product{
ID: 1,
Name: "Sample Product",
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(product)
}
func main() {
http.HandleFunc("/product", getProduct)
log.Fatal(http.ListenAndServe(":8081", nil))
}
Configurando o KrakenD
Agora, vamos configurar o KrakenD para fazer o merge das informações das duas APIs. Crie um arquivo chamado "krakend.json" na raiz do projeto com o seguinte conteúdo:
{
"version": 2,
"endpoints": [
{
"endpoint": "/user",
"backend": [
{
"url_pattern": "/user",
"host": ["http://localhost:8080"]
}
]
},
{
"endpoint": "/product",
"backend": [
{
"url_pattern": "/product",
"host": ["http://localhost:8081"]
}
]
}
]
}
Executando o KrakenD
Agora, vamos executar o KrakenD para iniciar nosso gateway API. Abra o terminal e navegue até o diretório raiz do projeto. Em seguida, execute o seguinte comando:
krakend run -c krakend.json
O KrakenD irá ler o arquivo de configuração e iniciar o servidor.
Testando a API
Agora, você pode testar a API acessando os seguintes endpoints:
- http://localhost:8080/user: Retorna informações do usuário.
- http://localhost:8081/product: Retorna informações do produto.
Além disso, você pode acessar as seguintes URLs através do KrakenD:
- http://localhost:8082/user: Retorna informações do usuário através do KrakenD.
- http://localhost:8082/product: Retorna informações do produto através do KrakenD.
O KrakenD irá fazer o merge das informações obtidas das APIs "user-api" e "product-api" e fornecer os dados combinados.
Conclusão
Espero que este tutorial tenha sido útil para você entender como criar APIs em Go e utilizar o KrakenD para unir informações de diferentes fontes. Divirta-se explorando as possibilidades que essa combinação oferece. Até a próxima!
Top comments (0)