第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

graphql-spqr 中的自定義標(biāo)量類型

graphql-spqr 中的自定義標(biāo)量類型

紅糖糍粑 2022-12-15 15:27:08
在 graphql-spqr 中,將 java.util.Date 定義為 Scalar。是否可以覆蓋 java.util.Date 的序列化/反序列化以獲得日期的不同 String 表示形式?此答案中提到的 ScalarStrategy已隨最新版本一起刪除。public class Order {    private String id;    private Date orderDate; //GraphQLScalarType "Date"    public Order() {    }    public Order(String id, String bookId, Date orderDate) {        this.id = id;        this.orderDate = orderDate;    }    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public Date getOrderDate() {        return orderDate;    }    public void setOrderDate(Date orderDate) {        this.orderDate = orderDate;    }}GraphQL 響應(yīng):{  "data": {    "createOrder": {      "id": "74e4816c-f850-4d63-9855-e4601fa125f4",      "orderDate": "2019-05-26T08:25:01.349Z", // --> 2019-05-26    }  }}
查看完整描述

1 回答

?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個贊

ScalarStrategy不是實(shí)現(xiàn)您想要的目標(biāo)的正確方法。當(dāng)您想要更改 Java 類型映射到 GraphQL 的方式時,您通常會提供一個新的(或自定義一個現(xiàn)有的)TypeMapper.


查看現(xiàn)有的Date標(biāo)量實(shí)現(xiàn)并以類似的方式實(shí)現(xiàn)您自己的標(biāo)量實(shí)現(xiàn)。然后實(shí)現(xiàn)一個自定義,它總是簡單地從和方法TypeMapper返回該標(biāo)量的靜態(tài)實(shí)例。toGraphQLTypetoGraphQLInputType


public class CustomTypeMapper implements TypeMapper {


    private static final GraphQLScalarType GraphQLCustomDate = ...;


    @Override

    public GraphQLOutputType toGraphQLType(...) {

        return GraphQLCustomDate;

    }


    @Override

    public GraphQLInputType toGraphQLInputType(...) {

        return GraphQLCustomDate;

    }


    @Override

    public boolean supports(AnnotatedType type) {

        return type.getType() == Date.class; // This mapper only deals with Date

    }

}

要注冊它,請致電generator.withTypeMappers(new CustomTypeMapper()。


也就是說,由于您只是想切斷時間部分,因此最好LocalDate在此處使用。您可以通過注冊一個(它只不過是一個映射器 + 轉(zhuǎn)換器)使 SPQR 透明地做到這一點(diǎn),TypeAdapter但是如上所述的簡單映射器是您的情況下更有效的解決方案。如果您仍然決定采用適配器方式,則可以繼承AbstractTypeAdapter<Date, LocalDate>并實(shí)現(xiàn)轉(zhuǎn)換邏輯(應(yīng)該是微不足道的)。通過generator.withTypeAdapters或通過將其分別注冊為映射器和轉(zhuǎn)換器進(jìn)行注冊。


查看完整回答
反對 回復(fù) 2022-12-15
  • 1 回答
  • 0 關(guān)注
  • 91 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號