为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Swagger 生成的 Golang 模型制作 DTO

如何使用 Swagger 生成的 Golang 模型制作 DTO

Go
慕容3067478 2022-05-18 15:39:43
我在 Go 中实现 REST API 时遇到了一些问题。我使用 go-swagger 来记录我的 API。它基于结构生成模型。我的第一个问题是我不知道在我的招摇 yaml 文件中如何定义一个简单的 hasMany 关系。如果我需要一辆有很多轮子的车。在我的数据库中,我将有一个vehicle表和一个wheel包含id车辆的表。由于 Vehicle 没有wheel_id,所以我大摇大摆地得到一个简单的type: object. 对于轮子,我有一个属性:  vehicle:    $ref: '#/definitions/Vehicle'这会生成一个模型:type Wheel struct {  ...  Vehicle *Vehicle}当我要求轮子列表时,这不是我希望我的 API 返回的内容。所以我需要一个 DTO 或某种映射器在客户端和数据库之间工作。阅读https://www.reddit.com/r/golang/comments/6xgzmp/model_to_dto_mapper_my_first_experience_with_go/ 看起来这不是在 Go 中做事的方式。我是否需要删除我的 swagger 文件中的所有参考,以便它更好地匹配模型?(将 $ref 替换为属性 id:类型:字符串)在这种情况下,最佳做法是什么?
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

我找到的解决方案是大摇大摆地制作一个自定义响应模型:


/vehicle/{id}:

  get:

    ...

    responses:

      '200':

        schema:

          $ref: '#definitions/VehicleCustomeResponse'

我想我可以使用招摇anyOf来减少重复的数量。


查看完整回答
反对 回复 2022-05-18
  • 1 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信