Home  >  Article  >  Backend Development  >  How to build a RESTful API and implement CORS using Golang?

How to build a RESTful API and implement CORS using Golang?

WBOY
WBOYOriginal
2024-06-02 17:52:01476browse

Create a RESTful API and implement CORS: Create a project and install dependencies. Set up HTTP routing to handle requests. Enable cross-origin resource sharing (CORS) using middlewareCORS middleware. Apply CORS middleware to the router to allow GET and OPTIONS requests from any domain.

如何使用 Golang 构建 RESTful API 并实现 CORS?

Use Golang to build RESTful API and implement CORS

In today’s interconnected network world, build RESTful API for interoperability with other applications It is critical that programs and services exchange data. This tutorial will guide you on how to build a RESTful API using Golang and enable Cross-Origin Resource Sharing (CORS).

Prerequisites:

  • Install Golang v1.18 or higher
  • Familiar with HTTP and REST concepts

1. Create the project

mkdir my_rest_api && cd my_rest_api
go mod init my_rest_api

2. Set up HTTP routing

Use an HTTP router (such as Gorilla Mux) to manage request routing.

package main

import (
    "fmt"
    "log"
    "net/http"

    "github.com/gorilla/mux"
)

func helloWorld(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "Hello World!")
}

func main() {
    r := mux.NewRouter()
    r.HandleFunc("/", helloWorld).Methods(http.MethodGet)
    log.Fatal(http.ListenAndServe(":8080", r))
}

In the code above, the helloWorld handler function responds to the GET request and returns a simple text message.

3. Implement CORS

Next, enable CORS to allow the API to be accessed from other domains.

func middlewareCORS(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        w.Header().Set("Access-Control-Allow-Origin", "*")
        w.Header().Set("Access-Control-Allow-Methods", "GET, OPTIONS")
        if r.Method == "OPTIONS" {
            w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
        }
        next.ServeHTTP(w, r)
    })
}

middlewareCORS The function is HTTP middleware that sets the necessary CORS headers for the response. It allows GET and OPTIONS requests from any domain (Access-Control-Allow-Origin: "*").

4. Apply middleware

Apply CORS middleware to the router.

r.Use(middlewareCORS)

Practical case:

Through this RESTful API, you can query data or handle requests from other sources. For example, you can build a simple CRUD API to manage user data.

By implementing CORS, your API can interact with other applications and services from different domains, which is very important when building modern, distributed systems.

The above is the detailed content of How to build a RESTful API and implement CORS using Golang?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn