在我担任软件工程师的公司,我们正在开发一个 API,该 API 与我们的微服务进行通信,并将由我们自己的产品使用以及我们的客户可以使用的 API。我们选择 Golang 的总体决定因素是速度。除了快速的执行时间之外,Go 还提供低内存消耗和高效的并发性。
当谈到指定端点的第一步时,我们正在寻找一种在代码中执行此操作的解决方案,因为我们希望避免代码和文档之间的差异。我们的首席执行官使用 Python FastApi 使用了相同的方法,因此我们在 google 上搜索了 Go 的 FastApi 解决方案,并发现了 Huma。使用 Huma,我们可以从代码自动生成 OpenAPI 文档,并使用红绿灯元素生成一份美观的文档。它从 Go 类型生成 JSON 模式,并对路径/查询/标头参数、主体、响应标头等使用静态类型。它根据 json 模式自动进行输入模型验证和错误处理。
我们发现该框架相当灵活,它允许使用自己的路由器,尽管我们只是坚持使用它作为默认路由器。有一些缺点,例如它似乎不支持数组查询参数,因此我们用逗号分隔过滤器。但这并没有破坏交易。
我计划在未来的帖子中写更多关于我在 Go Huma 上的经验和学习的内容,但到目前为止我发现它符合目的。
以上是为什么我们选择 Go Huma 框架来开发 API 端点的详细内容。更多信息请关注PHP中文网其他相关文章!