Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.13.4

faunadb_http

Uma implementação pura em Dart de um cliente FaunaDB e fornece classes de consulta que imitam de perto as funções FQL.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
94
Curtidas
54
Pontos Pub
130

Instalar pacote

flutter pub add faunadb_http

Visão geral do pacote

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

Um cliente puro em Dart para o FaunaDB que permite interações sem problemas com o banco de dados usando uma interface de consulta muito próxima à FQL (Linguagem de Consulta do Fauna). Projetado para aplicações multiplataforma, suporta todas as principais plataformas, incluindo móvel, web e desktop. O pacote fornece classes Dart intuitivas para construir e executar consultas, tornando fácil integrar o FaunaDB a aplicativos Flutter sem depender de código específico da plataforma. É ideal para desenvolvedores que buscam uma maneira leve e segura por tipo para gerenciar dados em aplicações em tempo real.

Casos de uso

  • Sincronização de dados de aplicativo em tempo real
  • integração de backend sem servidor
  • acesso a banco de dados multiplataforma
  • sistemas de autenticação de usuário
  • Armazenamento de dados baseado em documentos
  • lógica de aplicativo orientada por API

Principais recursos

  • Implementação pura em Dart
  • Sintaxe de consulta semelhante ao FQL
  • Suporte multiplataforma
  • Construção de consulta segura por tipo
  • Leve e dependências mínimas
  • Operações assíncronas

Indicado para

  • Desenvolvedores Flutter usando o FaunaDB
  • Aplicativos que exigem atualizações de dados em tempo real
  • Projetos evitando código nativo da plataforma
  • Serviços de back-end com requisitos mínimos de servidor
  • Desenvolvedores que preferem familiaridade com o FQL

Considerações

  • Requer conta e chave de API do FaunaDB
  • Limitado ao conjunto de recursos do FaunaDB
  • Sem recursos de primeiro offline
  • Depende da conectividade de rede
  • Pode exigir tratamento adicional de erros para uso em produção

README original

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

faunadb-http

A pure Dart implementation of a FaunaDB client. This library also provides query classes that closely mimic FQL functions.

Usage

Basic Example
import 'package:faunadb_http/faunadb_http.dart';
import 'package:faunadb_http/query.dart';

void main() async {
  final config = FaunaConfig.build(
    secret: '<your_secret_here>',
  );
  final client = FaunaClient(config);

  final query = Paginate(Match(Index('all_customers')));

  final result = await client.query(query);
  print(result);

  client.close();
}
Writing Queries

After importing the query classes from this package (as in the example above), your queries will look almost identical to FQL.

Check out the FQL Cheat Sheet to see all valid FQL functions.

Example Queries
// segment from example/crud.dart

//
// create
//

final createCollection = CreateCollection(Obj({'name': 'users'}));

final createDocument = Create(
  Collection('users'),
  Obj({
    'data': {'name': 'Gavan Singh'}
  }),
);

final createIndex = CreateIndex(Obj({
  'name': 'user-by-name',
  'source': Collection('users'),
  'terms': [
    {
      'field': ['data', 'name']
    }
  ]
}));

final createFunction = CreateFunction(Obj({
  'name': 'double',
  'body': Query(Lambda('x', Add([Var('x'), Var('x')])))
}));

//
// read
//

final callDoubleFunction = Call(Function_('double'), arguments: 2);

final paginateUsers = Paginate(
  Match(Index('user-by-name'), terms: ['Gavan Singh']),
);

final readUser = Get(Ref(Collection('users'), '281080202238362125'));

final readAllUsers = Map_(
  Paginate(Match(Index('all_Users'))),
  Lambda(
    'userRef',
    Let(
      {
        'userDoc': Get(Var('userRef')),
      },
      Obj(
        {
          'id': Select(['ref', 'id'], Var('userDoc')),
          'name': Select(['data', 'name'], Var('userDoc')),
        },
      ),
    ),
  ),
);

final paginateCollections = Paginate(Collections());

//
// update
//

final updateUser = Update(
  Ref(Collection('users'), '281080202238362125'),
  Obj({
    'data': {'isCool': true}
  }),
);

//
// delete
//

final deleteUser = Delete(Ref(Collection('users'), '281080202238362125'));

Query Differences

There are some cases where your queries will have to be written slightly differently from pure FQL. Here are examples of each type of difference.

  • Optional FQL arguments are named arguments in Dart.

    • Repeat('x', number: 10)
    • Paginate(Collections(), size: 2)
  • FQL functions with a variable number of arguments (such as Sum, GT etc.) accept a Dart List instead.

    • Add([1, Var('x')])
  • Some FQL functions and arguments are reserved keywords in Dart; simply add a trailing underscore to them.

    • Map becomes Map_
    • Function becomes Function_
    • default becomes default_

Build

The json_serializable package provides JSON serialization to the query classes.

Run pub run build_runner build to generate the boilerplate code to add JSON serialization.

pub run build_runner watch is great when trying things out.

Contributors

Can be found in CONTRIBUTORS.md

Categorias

Dependências

Lista de dependências 2 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.