登录
首页 >  Golang >  Go问答

API(几乎)使用 GoLang 进行 RESTFul 变量响应

来源:stackoverflow

时间:2024-04-05 14:09:38 279浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《API(几乎)使用 GoLang 进行 RESTFul 变量响应》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我有一个由于各种原因无法替换的软件,并且有一个看起来像 restful 的 api。

所有端点都可以响应一个或多个(在数组中)对象,即使 restful 架构说它必须以一组对象响应,如果它只找到一个,它会返回该对象而不将其包装在数组中.

get /customers?country_id=10000

{
  "count": 5,
  "customers": [
    { "id": 10000, "name": "customer 10000", "vatnum": "123456789p", "country_id": 10000 },
    { "id": 10001, "name": "customer 10001", "vatnum": "234567891p", "country_id": 10000 },
    { "id": 10002, "name": "customer 10002", "vatnum": "345678912p", "country_id": 10000 },
    { "id": 10003, "name": "customer 10003", "vatnum": "456789123p", "country_id": 10000 },
    { "id": 10004, "name": "customer 10004", "vatnum": "567891234p", "country_id": 10000 }
  ]
}

get /customers?vatnum=123456789p

{
  "count": 1,
  "customers": {
    "id": 10000,
    "name": "Customer 10000",
    "vatnum": "123456789P",
    "country_id": 10000
  }
}

我的问题是,我正在制作此 api 的客户端,但我不知道在 golang 结构中映射/解析服务器响应方面,哪种策略是解决此问题的最佳策略。


解决方案


我在使用新 api 时经常使用这个工具 https://mholt.github.io/json-to-go/ 如果你复制粘贴 json,你可以获得自动化的 struts ie:

type AutoGenerated struct {
    Count     int `json:"count"`
    Customers struct {
        ID        int    `json:"id"`
        Name      string `json:"name"`
        Vatnum    string `json:"vatnum"`
        CountryID int    `json:"country_id"`
    } `json:"customers"`
}

这是一个结构体,另一个结构体只是它的一个数组。

我意识到我误解了你的问题。 https://golang.org/pkg/encoding/json/#RawMessage 之前的答案是正确的,原始消息是最好的。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>