iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >如何调用go-gin中的接口函数?
  • 172
分享到

如何调用go-gin中的接口函数?

2024-04-05 00:04:41 172人浏览 薄情痞子
摘要

golang不知道大家是否熟悉?今天我将给大家介绍《如何调用Go-gin中的接口函数?》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指

golang不知道大家是否熟悉?今天我将给大家介绍《如何调用Go-gin中的接口函数?》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

这是存储库+控制器

package brand

import (
    "path/to/models"
    "gORM.io/gorm"

    "GitHub.com/gin-gonic/gin"
)

type responsebrand struct {
    items      []models.masterbrand `JSON:"items"`
    totalcount int                  `json:"total"`
}

type repository interface {
    getall() (responsebrand, error)
}

type dbrepo struct {
    db *gorm.db
}


func (repo *dbrepo) getall() (responsebrand, error) {
    var response responsebrand
    var brands []models.masterbrand

    repo.db.find(&brands)

    response.items = brands
    response.totalcount = len(brands)

    return response, nil
}

func list(c *gin.context) {
    // this is an error
    res, _ := repository.getall()
}

这用于路由组

func ApplyRoutes(r *gin.RouterGroup) {
    brand := r.Group("/brand") {
        brand.GET("/", list)
    }
}

我尝试在我的项目中实现存储库,但仍然坚持在我们的控制器函数list中调用repository.getall()。我用杜松子酒和戈尔姆来做这个


解决方案


接口只是类型必须具有的一组方法签名,以便实现该特定接口。所以不能调用接口。

在您的示例代码中,dbrepo 应该实现 repository 接口和函数 list() 是一个函数,允许列出实现 repository 的任何类型的内容。为此,显然 list() 需要知道要列出哪个 repository 类似类型的实例 - 例如接收它作为参数。像这样:

func list(ctx *gin.context, repo repository) {
    // here call getall() which must exist on all types passed (otherwise they don't
    // implement repository interface
    res, _ := repo.getall()
    // ...
}

现在 gin 无法将修改后的列表作为路由器函数,因为这样的签名只是 (ctx *gin.context) 但您可以使用匿名函数并将存储库感知的 list() 包装在它。

func applyroutes(repo repository, r *gin.routergroup) {
    brand := r.group("/brand") {
        brand.get("/", func(ctx *gin.context) {
            list(repo)
        })
    }
}

此外,您的 applyroutes() 函数需要知道应该在哪个存储库路由上运行 - 为了简单起见,我将其添加到此处作为参数,其他优雅的解决方案是将整个控制器包装在类型中并获取 repository 实例作为接收器字段.

func ApplyRoutes(repo Repository, r *gin.RouterGroup) {
brand := r.Group("/brand") {
    brand.GET("/", func(ctx *gin.Context) {
        list(ctx, repo)
    })
}}

如果没有,这可能会起作用。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持编程网!更多关于Golang的相关知识,也可关注编程网公众号。

您可能感兴趣的文档:

--结束END--

本文标题: 如何调用go-gin中的接口函数?

本文链接: https://www.lsjlt.com/news/596167.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何调用go-gin中的接口函数?
    Golang不知道大家是否熟悉?今天我将给大家介绍《如何调用go-gin中的接口函数?》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指...
    99+
    2024-04-05
  • 如何在BASH中调用PHP函数接口?
    在Linux系统中,BASH是一种广泛使用的命令行解释器。它可以使用各种编程语言编写的脚本。其中,PHP是一种流行的服务器端脚本语言,它可以处理大量的Web请求。在本文中,我们将介绍如何在BASH中调用PHP函数接口,以便更好地处理Web请...
    99+
    2023-07-30
    bash 接口 函数
  • GO语言中接口和接口型函数如何使用
    这篇文章主要讲解了“GO语言中接口和接口型函数如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“GO语言中接口和接口型函数如何使用”吧!// A Getter&nbs...
    99+
    2023-07-05
  • PHP中如何使用BASH接口来调用函数?
    PHP作为一种服务器端脚本语言,其强大的功能和丰富的扩展库,使其成为了众多Web应用程序的首选。在PHP中,我们可以使用BASH接口来调用函数,从而实现更加高效和灵活的编程。 一、什么是BASH接口? BASH接口是PHP的一种扩展库,它允...
    99+
    2023-07-30
    bash 接口 函数
  • Go 中调用的函数如何访问调用函数的参数?
    Go 中调用的函数可以通过函数参数来获取调用函数的参数。在 Go 中,参数可以通过传值或传引用的方式传递给函数,函数可以通过参数来获取调用者传递的值或指针。如果参数是值类型,函数内部的...
    99+
    2024-02-09
  • Go语言中如何打包接口函数?
    Go语言是一门非常流行的编程语言,在很多场景下都有广泛的应用。在Go语言中,函数是一等公民,这就意味着我们可以像对待变量一样对待函数。而且,Go语言中还有一个非常重要的概念——接口。接口是一种抽象的类型,通过接口可以实现多态性,让程序更加灵...
    99+
    2023-09-20
    打包 接口 函数
  • 如何在 JavaScript 中调用 Go 函数?
    在现代软件开发领域中,跨语言开发已经成为了一个不可或缺的部分。为了能够在不同的平台之间协调工作,开发人员需要学习如何在不同的编程语言之间进行交互。在这篇文章中,我们将会介绍如何在 JavaScript 中调用 Go 函数。 Go 是一门高效...
    99+
    2023-08-22
    npm 函数 javascript
  • 如何使用Go语言打包接口函数?
    Go语言是一门快速发展的编程语言,它已成为许多开发者的首选语言。在Go语言中,打包接口函数是一项非常重要的任务。本文将介绍如何使用Go语言打包接口函数。 一、什么是打包接口函数? 打包接口函数是将多个接口函数打包成一个大的接口函数。打包后的...
    99+
    2023-09-20
    打包 接口 函数
  • GO语言中接口和接口型函数的具体使用
    目录前言GO语言中的接口怎么用?使用函数类型实现接口有何好处?GO源码例子前言 今天在编码中,看到了一个非常经典的接口用法如下,于是查阅了相关资料,发现此种写法为接口型函数,本文对此...
    99+
    2023-03-09
    GO语言接口 GO语言接口型函数
  • 如何在Go的函数中得到调用者的函数名
    这篇文章主要讲解了“如何在Go的函数中得到调用者的函数名”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何在Go的函数中得到调用者的函数名”吧!func&n...
    99+
    2024-04-02
  • Go调用Rust方法及外部函数接口前置
    目录前言FFI 和 Binding准备 Rust 示例程序用 Cargo 创建项目准备 Rust 代码编译 Rust 代码准备 Go 代码编写 main.go编译代码总结前言 近期 ...
    99+
    2024-04-02
  • GO语言中的回调函数如何使用
    这篇文章主要介绍了GO语言中的回调函数如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇GO语言中的回调函数如何使用文章都会有所收获,下面我们一起来看看吧。0.前言回调函数是一种在编程中常见的技术,通常在异...
    99+
    2023-07-05
  • Go之接口型函数用法
    目录价值实例1(net/http)实例2(tutu)总结在net/http包中,有一个接口型函数的实现: type Handler interface {     ServeHTTP...
    99+
    2023-02-10
    Go接口型函数 Go函数 Go接口
  • 如何在thinkphp5.1中写接口及接口调用
    在thinkphp5.1中如何写接口及如何调用接口 对于php不熟悉的人来说,解除thinkphp还是挺有难度的。 下面记录如何编写接口。 及如何对编写的接口进行调用。 1.首先在thinkphp中的application中的api/co...
    99+
    2023-09-01
    php
  • 如何在 JavaScript 中使用 Go 的数组接口?
    在本文中,我们将探讨如何在 JavaScript 中使用 Go 的数组接口。Go 是一种强类型、静态编译语言,其数组接口非常实用。尽管 JavaScript 是一种动态类型的解释性语言,但通过一些技巧和技术,我们可以利用 Go 的数组接口...
    99+
    2023-07-01
    数组 javascript 接口
  • 你知道如何在Go中打包接口函数吗?
    当我们在使用 Go 编写代码时,经常会使用接口函数。接口函数可以使我们的代码更加灵活,能够适应不同的场景和需求。但是,在编写接口函数时,我们可能会遇到一个问题:如何在 Go 中打包接口函数呢? 在本文中,我们将会讨论这个问题。我们将会介绍如...
    99+
    2023-09-20
    打包 接口 函数
  • 如何在 Bash 中轻松调用 Go 函数 API?
    Bash 是一种常用的 Unix shell 和命令语言,而 Go 语言则是一种高效的编程语言。如果你需要在 Bash 中调用 Go 函数 API,本文将为你提供一些简单易懂的方法。 首先,我们需要编写一个简单的 Go 程序,以便在 Ba...
    99+
    2023-08-07
    函数 api bash
  • webservice接口如何调用
    调用webservice接口需要以下步骤:1. 确定webservice的地址:通过查看webservice的文档或联系webser...
    99+
    2023-08-22
    webservice
  • 如何调用webservice接口
    如何调用webservice接口,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。调用方法:首先选中“项目”选项卡,点击鼠标右键,在弹出的右键菜单中选择“new”-“other...
    99+
    2023-06-20
  • 面试中如何展现你对Go接口和函数的理解?
    在Go语言中,接口(interface)是一种类型,它定义了一组方法的签名。接口类型可以定义为一个变量的类型,因此它可以被用来声明变量、作为函数参数或返回值。在Go语言中,接口是非常重要的,因为它允许我们编写可复用的代码,同时还可以减少代...
    99+
    2023-06-16
    接口 函数 面试
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作