graphql java 自定义scalar

李言
2023-12-01

GraphQLScalarType ,可以理解为java 语言中的类型、对象。可以通过extends GraphQLScalarType实现自定义。

自定义分为两部分:

  • java 代码
  • scheme 定义

java 代码如下

@Component
public class MyStringScalarType extends GraphQLScalarType {
 
    private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm";
 
    public MyStringScalarType() {
        super("MyString", "MyString value", new Coercing<String, String>() {
            @Override
            public String serialize(Object o) {
                
                return o.toString();
            }
 
            @Override
            public String parseValue(Object o) {
                String value = String.valueOf(o);
                return value;
            }
 
            @Override
            public String parseLiteral(Object o) {
                String value = String.valueOf(o);
                return value;
            }
        });
    }
 
}

本质上可以是任意java 对象

scheme 定义如下:

scalar MyString

type Post {
    id: ID!
    text: String
    comments: [Comment!]!
    random: MyString
}

注意 要定义:scalar MyString

 类似资料: