我正在尝试通过GraphQL有效地执行PUT请求
突变:
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
查询变量:
export const UPDATE_CAT = gql`
mutation updateCat($catRef: RefInput, $payload: CatInput) {
updateCat(ref: $catRef, input: $payload) {
${ref}
}
}
`;
尽管这似乎擦除了cat实体上的所有道具(它不会删除资源)。这是类似请求的PUT的正确语法吗?
答案 0 :(得分:0)
首先,我认为值得一提的是graphql与协议无关。这意味着可以使用任何传输协议,而不必使用HTTP(尽管大多数情况下使用HTTP)。
此外,您将PUT视为请求是什么意思?据我了解,您声明HTTP PUT方法用于修补数据。可能不正确。这取决于您如何实现。您可以轻松地创建一个REST API,该REST API可以通过GET接收数据,并通过POST或PUT方法发送数据,尽管最佳实践不建议这样做。
与您的问题相同的情况。这与您的突变签名无关,而与突变解析器的实现有关。
为了使它起作用,您应该在服务器上的解析器功能中确定这是新资源还是现有资源,并正确处理这两种情况。
如何检查这是否是新资源?在这种情况下,id属性将是未定义的,对吧?
如果您使用的是第三方api,请检查其文档。