用Go和Gin构建一个安息的API
#api #go #休息 #gin

在构建API方面,GO是一种非常流行的编程语言选择,可以使用强大的静态API。该语言非常轻巧,具有许多不同的库和框架,并且易于运行。 GO支持的框架之一是Gin。 Gin是用Golang编写的网络框架,除其他功能外提供了出色的性能和可扩展性。根据杜松子酒网站的说法,杜松子酒具有类似马提尼的API,但性能比Martini高40倍。在本教程中,我们将使用GO和GIN构建一个简单的REST API。 API端点将允许用户检索信用评分等级。当然,我们不会链接到任何后端系统来提取信用评分,而是会使用随机数生成器来生成分数并将其返回给用户。尽管很简单,但本教程将向您展示与GO和Gin的REST API开发的基础知识。

先决条件

在开始之前,我们必须确保完成几个先决条件。要遵循并运行本教程,您将需要:

  1. 安装Go
  2. 有一个IDE编辑您的代码
  3. 安装邮递员,以便您可以测试端点
  4. 完成所有这些先决条件后,我们可以开始!

创建基本项目

在您选择的目录中,创建一个名为my-go-rest-api的文件夹。

创建了新文件夹,在文件夹的根部打开一个终端,以便可以执行命令以构建和运行我们的GO项目。

将终端指向项目的根目录后,运行GO Mod Init命令,以便您可以初始化GO项目并管理依赖项。

go mod init example/my-go-rest-api

最后,在根目录中,创建一个名为main.go的文件。这将是我们编写所有代码的文件。

添加代码

创建了main.go文件后,我们可以将应用程序代码添加到其中。首先,我们将添加几行代码以导入我们的依赖性,包括我们对杜松子酒的依赖。在文件的顶部,添加以下代码:

package main

import (
   "math/rand"
   "net/http"
   "github.com/gin-gonic/gin"
)

接下来,根据“进口代码”,我们将添加我们的上限和下限,以生成信用评分并创建信用_Rating结构以持有我们的信用评级数据。

`const creditScoreMin = 500
const creditScoreMax = 900

type credit_rating struct {
  CreditRating int `json:"credit_rating"`
}`

通过定义信用评分的参数,我们将创建一个将随机生成信用评分编号的函数。在接收 *gin.context struct的功能内部,将生成信用评分,传递到Credit_Rating结构中,然后写入Gin.Context作为JSON对象。实现功能将低于其他信用分数定义代码,并且看起来像这样:

`func getCreditScore(c *gin.Context) {
    var creditRating = credit_rating{
      CreditRating: (rand.Intn(creditScoreMax-creditScoreMin) + creditScoreMin)
    }

    c.IndentedJSON(http.StatusOK, creditRating)
}`

最后,我们将添加一个主要功能,我们的应用程序将在端口8080(GIN的默认端口)上公开 /creditsCore的获取端点并公开我们的API服务。代码看起来像这样:

func main() {
   router := gin.Default()
   router.GET("/creditscore", getCreditScore)

   router.Run("localhost:8080")
}

main.go文件中的完整代码(合并在一起)将看起来像这样。

package main

import (
   "math/rand"
   "net/http"
   "github.com/gin-gonic/gin"
)

const creditScoreMin = 500
const creditScoreMax = 900

type credit_rating struct {
   CreditRating int `json:"credit_rating"`
}

func getCreditScore(c *gin.Context) {
    var creditRating = credit_rating{
      CreditRating: (rand.Intn(creditScoreMax-creditScoreMin) + creditScoreMin)
    }

    c.IndentedJSON(http.StatusOK, creditRating)
}

func main() {
   router := gin.Default()
   router.GET("/creditscore", getCreditScore)

   router.Run("localhost:8080")
}

运行和测试代码

最终在当前文件夹中编写了代码,运行ge获取以将软件包和依赖项拉入项目中。

go get .

命令完成后,运行该项目依赖项将可用于我们的代码。现在,让我们通过在应用程序的根目录中使用GO RUN命令来运行简单的Web API。

go run .

现在,我们的API正在运行。您可以通过Postman或您选择的其他服务发送测试HTTP请求。通过向Localhost发送请求:8080/CreditsCore,您应该看到200个状态代码和从GetCreditScore处理程序中创建的随机数生成器中返回的信用评分。对于此测试,即将到来的请求不需要任何请求主体。

包起来

这样,我们使用GO和GIN创建了一个简单的Restful API。然后,可以根据需要扩展此代码,以构建应用程序的API。向前迈进,您可能需要使用API​​键保护API,将API与API网关集成,检查how your API is being consumed并使用或通过API monetization建立收入。要解决您的API分析和货币化需求,check out Moesif今天探索所有这些以及更多!