AWS-CDK Appsync Codefirst 输入类型

问题描述

为了避免重复数据结构,我想在这样的输入类型上重用类型定义

export const DeviceStatus = new ObjectType('DeviceStatus',{
    deFinition: {
        time: timestamp,firmwareversion: string
    },});

export const DeviceStatusInput = new InputType('DeviceStatusInput',{
    deFinition: {
        tenantId: id_required,deviceid: id_required,// Reuse of DeviceStatus Field deFinition
        status: DeviceStatus.attribute()
    }
});

没有错误,因为 DeviceStatus.attribute() 的返回类型很好,这适用于 ObjectType 继承。

从我的角度来看,这应该可行,但部署会导致令人讨厌的“创建架构的内部错误错误

当然我可以将整个定义移动到一个对象中并重用它,但这看起来很奇怪。 CodeFirst 方法对此有什么好的解决方

解决方法

object type 中引用 input type 似乎无效。

我建议查看Can you make a graphql type both an input and output type?

可能最好的办法是创建一些方便的方法,该方法将从单一定义中创建对象和输入类型。