很好,一起都好 。
如果你想编辑.golangci.yml文件,请查看golang-ci支持的linters 。
7.检查许可证另外一个好的实践是检查许可证 。
你需要去检查许可证(你项目依赖项使用的许可证),例如,当你希望你的应用程序或者公司的代码开源时,为了避免使用被禁的许可证,就要去检查 。
在Go中存在一个名为wwhrd的工具 。
首先,我们创建一个名为.wwhrd.yml的文件,来定义选项:
---blacklist:- AGPL-3.0- GPL-2.0- GPL-3.0- CDDL-1.0whitelist:- Apache-2.0- MIT- NewBSD- FreeBSD- LGPL-2.1- LGPL-3.0- ISC- MPL-2.0- EPL-1.0- Unlicense# exceptions:# - github.com/davecgh/go-spew/spew/... # ISC License misrecognized# - github.com/dchest/uniuri # https://creativecommons.org/publicdomain/zero/1.0/
在这个wwhrd文件特性中,你可以添加例外项,黑名单和白名单特性 。
一个检查证书的指令已经写在了Makefile文件中的,因此你只需要执行它即可:
$ make license==> license checkwwhrd checkINFO[0000] Found Approved license license=Apache-2.0 package=go.mongodb.org/mongo-driver/bson/primitiveINFO[0000] Found Approved license license=Apache-2.0 package=github.com/go-openapi/swagINFO[0000] Found Approved license license=NewBSD package=github.com/PuerkitoBio/purellINFO[0000] Found Approved license license=Apache-2.0 package=github.com/go-openapi/jsonreferenceINFO[0000] Found Approved license license=Apache-2.0 package=go.mongodb.org/mongo-driver/bson/bsoncodecINFO[0000] Found Approved license license=Apache-2.0 package=github.com/go-openapi/loads…
很好,没有许可证问题了 。
8.构建应用现在,我们可以在一个可执行的二进制文件里构建应用,并测试二进制文件:
$ make buildgo build -o bin/http-go-server internal/main.go$ ./bin/http-go-server2019/10/28 21:47:38 Serving hello at http://[::]:8080
非常棒:-)
9.总结正如你在这篇文章第一部分看到的一样,使用net/http包和Gorilla/mux作为路由,可以在几分钟或几秒钟内创建一个HTTP服务,但是我想向你展示的是,在代码组织的最佳实践方面如何一步一步深入 。为了符合OpenAPI标准使用了Swagger,还使用一些其他有用的工具 。
最后,我们小型的HTTP服务成长了一些,如下代码目录结构所示:
.├── Makefile├── README.md├── bin│ └── http-go-server├── doc│ └── index.html├── go.mod├── go.sum├── internal│ └── main.go├── pkg│ └── swagger│ ├── gen.go│ ├── server│ │ └── restapi│ │ ├── configure_hello.go│ │ ├── doc.go│ │ ├── embedded_spec.go│ │ ├── operations│ │ │ ├── check_health.go│ │ │ ├── check_health_parameters.go│ │ │ ├── check_health_responses.go│ │ │ ├── check_health_urlbuilder.go│ │ │ ├── get_hello_user.go│ │ │ ├── get_hello_user_parameters.go│ │ │ ├── get_hello_user_responses.go│ │ │ ├── get_hello_user_urlbuilder.go│ │ │ └── hello_api.go│ │ └── server.go│ └── swagger.yml├── scripts└── vendor├──…└── modules.txt└── .gitignore└── .golangci.yml└── .wwhrd.yml
所有的代码都可以在GitHub仓库找到:https://github.com/scraly/http-go-server,希望这类文章对你有所帮助 。
原文:https://dzone.com/articles/how-to-write-a-http-rest-api-server-in-go-in-minut
本文为 CSDN 翻译,转载请注明来源出处 。
【End】
【如何用 Go 快速编写出 HTTP REST API 服务?】
推荐阅读
- SEO中,H1、H2、H3标签应该如何使用?
- 如何添加 Photoshop 的各类工具
- 腰骶神经根损伤如何治疗
- 腰麻后神经损伤如何治疗
- 扁导体发炎了怎么办
- 屁股为什么会变大
- 如何判断结膜炎的类型
- 淘宝开店如何装修 淘宝店铺不装修可以吗
- 驻马店,茶园建设如火如荼 茶业发展正逢时
- 皎然,皎如明月 灿然似星