Swagger Petstore自定义API中Dog属性GET返回缺失问题咨询
问题解答
你的猜测基本正确。
Swagger Petstore官方后端实现(如Java、Go等强类型语言版本)通常只定义了通用的Pet实体类,并没有专门的Dog子类来对应你新增的bark和breed专属属性。
具体原因如下:
- POST请求时,后端仅通过你修改后的OpenAPI规范完成了请求体的格式校验,校验通过后返回200 OK,但这些Dog专属属性并没有被后端实体类的字段接收,因此不会被持久化存储。
- 调用GET /pet/{petId}时,后端返回的是通用
Pet实体序列化后的结果,自然不包含未在该实体中定义的bark和breed属性。
若要解决这个问题,你需要修改后端代码:
- 新增
Dog实体类(可继承或扩展Pet类),添加bark、breed字段。 - 调整后端的序列化/反序列化逻辑,支持基于
oneOf/anyOf的多类型处理,确保存储和返回时能正确识别并处理Dog类型的属性。
内容的提问来源于stack exchange,提问作者Deepika
相关产品推荐
相关产品推荐

