1

Flutter、Chopper、および Built Value を使用して Hasura バックエンドにリクエストを送信しようとしていますが、次のエラーが表示されます。

> When parsing the constructor GQLReq of type Hasura.GraphQL.Transport.HTTP.Protocol.GQLReq expected Object but got String.,

チョッパーサービス

@ChopperApi(baseUrl: '/v1/graphql')
abstract class PostApiService extends ChopperService {
  @Post()
  Future<Response<BuiltPost>> get(@Body() String body);

  static PostApiService create(AuthHeaderProvider authHeaderProvider) {
    final client = ChopperClient(
      baseUrl: 'https://arrivee-app-test.herokuapp.com',
      services: [
        _$PostApiService(),
      ],
      converter: BuiltValueConverter(),
      interceptors: [
        HttpLoggingInterceptor(),
     //   HeadersInterceptor({'content-type': 'application/json'}),
        HeadersInterceptor({'Authorization':'Bearer token'})
      ],
    );
    return _$PostApiService(client);
  }
}

次のコードでリクエストを行います

    var request = RequestModel((b) => b
  ..query = fetchAccommodations()
  ..variables = null
  ..operationName = 'AccommodationGet');

var response = await client.get(request.toJson());

リクエストモデル

    abstract class RequestModel
    implements Built<RequestModel, RequestModelBuilder> {
  String get query;

  @nullable
  String get variables;

  String get operationName;

  RequestModel._();

  factory RequestModel([updates(RequestModelBuilder b)]) = _$RequestModel;

  String toJson() {
    return json
        .encode(serializers.serializeWith(RequestModel.serializer, this));
  }

  static RequestModel fromJson(String jsonString) {
    return serializers.deserializeWith(
        RequestModel.serializer, json.decode(jsonString));
  }

  static Serializer<RequestModel> get serializer => _$requestModelSerializer;
}
4

2 に答える 2