Ουι*_*ευα 2 postgresql postgraphile
我在 PostgreSQL 中有这个函数:
CREATE FUNCTION it_exists(
email text,
name text
) RETURNS boolean AS $$
DECLARE
_eva1 boolean;
_eva2 boolean;
BEGIN
_eva1 := EXISTS(SELECT * FROM tableA AS A WHERE A.email = $1::citext);
_eva2 := EXISTS(SELECT * FROM tableB AS A WHERE A.name::citext = $2::citext);
RETURN _eva1 OR _eva2;
END;
$$ LANGUAGE plpgsql STRICT SECURITY DEFINER;
Run Code Online (Sandbox Code Playgroud)
它被翻译成 Postgraphile 是这样的:
mutation MyMutation($email: String!, $name: String!) {
itExists(
input: { email: $email, name: $name }
) {
boolean
}
}
Run Code Online (Sandbox Code Playgroud)
我想将“布尔”名称更改为“结果”之类的名称,有什么建议吗?考虑我有许多具有不同返回值的函数。
我认为 Postgraphile 这样做是为了使其自定义突变遵循Relay 规范,该规范表示
按照惯例,突变被命名为动词,它们的输入是名称末尾附加“Input”的名称,它们返回一个对象,该对象是名称附加“Payload”的名称。
因此,您的自定义突变会创建一个ItExistsPayload仅包含单个字段的类型,而不是返回 GraphQL Boolean。将来您可能希望使用更多字段扩展此有效负载对象。
可以使用@resultFieldName智能标记重命名该字段。在你的情况下:
COMMENT ON FUNCTION it_exists(text, text) IS '@resultFieldName result';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
292 次 |
| 最近记录: |