Golang Go语言中用golang写http JSON接口的同学可以试试这个迷你库

发布于 1周前 作者 gougou168 来自 Go语言

主要是用 nex.Handler 把一个处理业务逻辑的 Endpoint 转成一个符合 http.Handler 接口的结构, 在请求过来的时候自动将 Request.Body 的内容 Unmarshl 为 golang 的结构, 函数返回时自动将返回的结果 Marshal 为 JSON 结构, 传回客户端.

Talk is cheap, show you the code.

package main

import ( “errors” “fmt” “net/http”

"github.com/chrislonng/nex"

)

type LoginRequest struct { Username string json:"username" Password string json:"password" }

type LoginResponse struct { Result string json:"result" }

type ErrorMessage struct { Code int json:"code" Error string json:"error" }

func main() { // customize error encoder nex.SetErrorEncoder(func(err error) interface{} { return &ErrorMessage{Code: -1, Error: err.Error()} })

mux := http.NewServeMux()
mux.Handle("/test1", nex.Handler(test1))
mux.Handle("/test2", nex.Handler(test2))

http.ListenAndServe(":8080", mux)

}

// regular response func test1(m *LoginRequest) (*LoginResponse, error) { fmt.Printf("%+v\n", m) return &LoginResponse{Result: “success”}, nil }

// error response func test2(m *LoginRequest) (*LoginResponse, error) { fmt.Printf("%+v\n", m) return nil, errors.New(“error test”) }

觉得有用就 Star 一下吧

传送门: https://github.com/chrislonng/nex


Golang Go语言中用golang写http JSON接口的同学可以试试这个迷你库

更多关于Golang Go语言中用golang写http JSON接口的同学可以试试这个迷你库的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

28 回复

妹子,你还需要自己动手写代码?

更多关于Golang Go语言中用golang写http JSON接口的同学可以试试这个迷你库的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


楼主估计用的女神头像

现任看到会是什么感觉?

已经没人关注楼主写的东西了,楼主,讲出你头像的故事吧

你就是我女朋友的前任啊? 世界真小

子湄是个好姑娘,我会替你照顾好她的


你发我女朋友微博干啥? 请保护他人的隐私

楼这么快就歪了

一帮程序员屌丝又在盗图吹女友了

https://www.google.com/search?tbs=sbi:AMhZZit8tufyJwAu_1v7TnT-mt0K5SVmcA4qPXU4sh7o7H-vT4qecU1iEZc6fOJ2UUgdnjePAraPbPXGh31i78bqZP34YDie8DLzRF0qoA2BGW6XQzXZqeGDqvkd09Q0WHyPVspT2ok_1PGhMyY60ifGyiWNa4niXp_1y2sNuGMGjua39OsWJFJT3pLAOXYtTsOcjVVZ_1rq7VTEO5Dm2rYgENjCP3t25dWtDPaihVZPbjkUogbZGhEhSUCdhej5fNXloRkdCTsay9VTLjogh7yrjAFHJ8GA3-SJQXf8g2O2e6KaBh0mx-XJGGL4Qh-ypHDH-UgNM8r_1DctUClExuKS7ayuyBghdvqnxrmTmEV6wOpxqEWHWdFRErgwyeBMEn6xhbCRTpGj_1fy4CmxQcyB0GnW8CoxpnAgSaxTR95vJp3ppWI3hqkZeQ2I8jrG_1gywDN_187yccu41ZbpTqWu2zD7mJTLv1qI5KnCT_1-WRnBAlUQML8LpcLx3X_1zqOzjtEs7iKpRIY89aAQDR4EOYniNQPAVC_1EeFmM_1s_1AijifFMxR7QzWdv94_16gM_17jo6QVd2zb4vnpV73cMD-NhNvaogKq11vAOIAjrZxTmMRire_1R-Rdb0cWvLRDW1diR_1XWNETx1xCjfls66WfSts0cOaHrOgGOVmKevARWGg6ce5GjHyGqRCVfvGB4wupRZNUeCWsiOTKE7Ye5s0yFykuk4to8PqyrXuu3O_1RTZAqZ94jORztkiiJRZ97sTNeemp1CNOrlnOs5g7Df-qcKCRKXu2exBo1JV6ZN_1tU7yThnmaVW_1XXXtVZaDY4IiS6h9WP-0Y-4MKxoRkRwdwqRkN34z7DmOQADg2mF3rrlg_1JSFN3p43kmNS3d2XrqBdrLWl_103BZ12_1J0P_1lnfFL5Y4MC8VGkIrIidt77baoUP2DBGsUuWypsLm_1EG7uozT38IA9WXE6MSmoRS6zxhhOxgJMefn_1Lg-2xvtoteSIQKAOIMq7O915sEhe3-tIG1cT4F7tOVibj1zvHxxKcNC_1xW4K8o-hmclN88r1woJOxzt1XMYweUwICqLmdvVItZqUVqDCAxdbk9FjnIANIB5iZu63yqs8FStNKP8SYClkxOcPpaYymEeH-ecqi7DkHSYri6QRzbUqYvrLr7HA0vYkH7nAaph-FSdKCPN8GpR8itHk20B09E1nVrj-rS1jOLnPNwLxhA686vzRLv43z0vGFUqbMyxFGzrpTimJe9kFzcE2FuJi7b56QyZk2BwMSe9TLVP96jNJx0sfBk6cdtRXXl-UJsWa1sRUIlk2sdaN5kBqahmXkkfxS5n0UpGaqvc_1igeCLqN1iu-g_1NNft3VKz8ACT-xqQmaimPDTTfZ4l2ENCUlMj3Qyb2NEapTt_1sXYKO7JWUJYuVUKj_1LmfmEdyc680q9W3Oo9M-am3HVXYxCnxJ2L_1QPL9qqq3EtY0pG-DFBuRNPFPzuz0mnB4EBX6SjLDoP8eAIV3_1hvHrzNjrwK6zyGV35bgCnnm2YktMfS-QFDRQ3sNgMzEW_1gnNjwpIY2dzpNdqF9FRjpP33V7BhEjXhKh2orIgyV6q2eXu5QhF78nhvaxErDfqYAVlLEIYvMjpP6Gxjvuet_11E7Ckk-hGIoNpoRBp_1NoLbtUNFo5zDRZCCZahCyAo9NUiMHXS&hl=zh-CN

7 楼已经算对楼主好的了,之前我在百度里面看过扒皮扒得更惨的

哟,好贴,赶紧收藏下,下午回来看

好帖(tu), mark

好强你们,话说是怎么根据图片翻出这么多信息的?

百度识图,谷歌识图。
楼主,我不是来拆台的…

要不是看了 7 楼我就差点信了 6 楼。

哈哈哈,这楼歪的可以啊。下班刷新再看看

换头像正楼

楼主前女友哆啦 A 梦?黑人问好.gif

之前是六楼的妹子

v2ex 要变发车场了吗

来晚了吗。我要上车。

在Go语言中,开发HTTP JSON接口时,选择合适的库能够显著提升开发效率和代码的可读性。对于寻找迷你库的开发者,我推荐考虑一些轻量级且功能齐全的第三方库,这些库通常设计简洁,易于集成,同时提供必要的JSON处理和HTTP请求/响应功能。

一个值得尝试的迷你库是jsonhttp(请注意,这只是一个示例名称,实际中可能有多个类似的库)。这类库通常具备以下特点:

  1. 轻量级:不引入过多依赖,减小项目体积。
  2. 易用性:提供简洁的API,方便快速上手。
  3. 功能全面:支持JSON的编码和解码,以及HTTP请求和响应的处理。
  4. 错误处理:内置统一的错误处理机制,减少重复代码。

使用这样的库,你可以轻松构建RESTful API,处理JSON数据,并管理HTTP请求和响应。例如,通过简单的函数调用,你可以实现JSON数据的序列化和反序列化,同时发送和接收HTTP请求。

为了更具体地了解这些库的使用,我建议你查阅相关的文档和示例代码。此外,也可以在Go社区和论坛上寻求其他开发者的推荐和意见。

总之,选择适合的迷你库能够助你高效开发HTTP JSON接口,提升代码质量和开发体验。希望这些建议对你有所帮助!

回到顶部