Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev2.0.0

graphql_2_rest

Uma biblioteca leve para converter consultas GraphQL em formato REST, permitindo o uso de qualquer cliente HTTP para executar solicitações.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
522
Curtidas
64
Pontos Pub
160

Instalar pacote

flutter pub add graphql_2_rest

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Uma biblioteca leve do Flutter/Dart que converte consultas GraphQL em solicitações HTTP compatíveis com REST. Permite que desenvolvedores usem clientes HTTP padrão para executar operações GraphQL sem precisar de um cliente dedicado para GraphQL. Isso simplifica a integração com infraestruturas e ferramentas existentes baseadas em REST, especialmente em ambientes onde clientes GraphQL não estão disponíveis ou são desejáveis. O pacote suporta todas as principais plataformas, tornando-o ideal para aplicações multiplataforma que necessitam de comunicação flexível com APIs.

Casos de uso

  • Convertendo consultas GraphQL para REST para sistemas legados
  • Usando clientes HTTP padrão com dados do GraphQL
  • Simplificando a integração de API em ambientes restritos
  • Habilitar o uso do GraphQL em aplicativos com políticas estritas de cliente HTTP
  • Apoiar arquiteturas híbridas de backend REST-GraphQL

Principais recursos

  • Leve e dependência mínima
  • Transformação automática de consulta de GraphQL para REST
  • Compatibilidade multiplataforma
  • Funciona com qualquer cliente HTTP
  • Integração simples por meio do comando pub add

Indicado para

  • Desenvolvedores usando clientes REST, mas precisando de dados do GraphQL
  • Equipes migrando do REST para o GraphQL gradualmente
  • Projetos com restrições rígidas de dependência
  • Aplicações direcionadas a múltiplas plataformas
  • Casos de uso que exigem design flexível da camada de API

Considerações

  • Limitado ao suporte básico de consulta GraphQL
  • Sem tratamento de erro ou cache embutido
  • Não suporta mutações ou assinaturas
  • Requer gerenciamento manual de cabeçalhos e autenticação
  • Não adequado para esquemas GraphQL complexos

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

GraphQL to REST

Pub style: very good analysis License: MIT

A lightweight library for converting GraphQL queries into REST format, enabling the use of any HTTP client for executing requests.

Usage

To work effectively with the graphql_2_rest library, you primarily need to use two key components: GraphQLQueryPayload and GraphQLQueryBuilder.

  1. GraphQLQueryPayload is responsible for providing the arguments and input models to be used in a GraphQL query. For example, if you have queries like:
const queryA = '''query {
  user(age: %age, firstName: %firstName) {
    first_name
    last_name
    site {
      site_name
    }
  }
}''';

const queryB = '''query {
  user(@userInput) {
    first_name
    last_name
    site {
      site_name
    }
  }
}''';

then you need to create the following GraphQLQueryPayloads with arguments or/and inputs:

class UserQueryPayloadA with GraphQLQueryPayload {
  const UserQueryPayloadA(
    this.age,
    this.firstName,
  );

  final int age;
  final String firstName;

  @override
  Map<String, dynamic> get arguments {
    return {
      'age': age,
      'firstName': firstName,
    };
  }
}

class UserQueryPayloadB with GraphQLQueryPayload {
  const UserQueryPayloadB(
    this.age,
    this.firstName,
  );

  final int age;
  final String firstName;

  @override
  Map<String, Map<String, dynamic>> get inputs {
    return {
      'userInput': {
        'age': age,
        'firstName': firstName,
      },
    };
  }
}
  1. GraphQLQueryBuilder automatically replaces all argument placeholders in the query using values provided by the GraphQLQueryPayload. By default, GraphQLQueryBuilder uses the following prefixes:
  • % for arguments
  • @ for input models

These default prefixes can be customized by specifying different values for argumentPrefix and inputPrefix when creating an instance of the class.

After building the query, you can use any HTTP client to perform the request, but keep in mind that the request must use the POST method:

final dio = Dio(BaseOptions(baseUrl: 'https://endpoint/'));

final queryBuilder = GraphQLQueryBuilder(
  transformer: (query) => query.replaceAll(RegExp(r'\s+'), ' ').trim(),
);

dio.post<dynamic>(
  'graphql/',
  data: queryBuilder.build(
    queryA, //or queryB
    UserQueryPayloadA(27, 'John'), //or UserQueryPayloadB(27, 'John')
  ),
);

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.