Skip to content

danhdevelop/postgrest-dart

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Postgrest Dart

Dart client for PostgREST. The goal of this library is to make an "ORM-like" restful interface.

pub package pub test

Using

The usage should be the same as postgrest-js except:

  • data is directly returned by awaiting the query when count option is not specified.
  • Exceptions will not be returned within the response, but will be thrown.
  • is_ and in_ filter methods are suffixed with _ sign to avoid collisions with reserved keywords.

You can find detail documentation from here.

Reading your data

import 'package:postgrest/postgrest.dart';

final url = 'https://example.com/postgrest/endpoint';
final client = PostgrestClient(url);
final response = await client.from<PostgrestList>('users').select();

Reading your data and converting it to an object

import 'package:postgrest/postgrest.dart';

final url = 'https://example.com/postgrest/endpoint';
final client = PostgrestClient(url);
final response = await client
    .from('users')
    .select<PostgrestList>()
    .withConverter((data) => data.map(User.fromJson).toList());

Insert records

import 'package:postgrest/postgrest.dart';

final url = 'https://example.com/postgrest/endpoint';
final client = PostgrestClient(url);
try {
  await client.from('users')
    .insert([
      {'username': 'supabot', 'status': 'ONLINE'}
    ]);
} on PostgrestException catch (error, stacktrace) {
  // handle a PostgrestError
  print('$error \n $stacktrace');
} catch (error, stacktrace) {
  // handle other errors
  print('$error \n $stracktrace');
}

Update a record

import 'package:postgrest/postgrest.dart';

final url = 'https://example.com/postgrest/endpoint';
final client = PostgrestClient(url);
await client.from('users')
      .update({'status': 'OFFLINE'})
      .eq('username', 'dragarcia');

Delete records

import 'package:postgrest/postgrest.dart';

final url = 'https://example.com/postgrest/endpoint';
final client = PostgrestClient(url);
await client.from('users')
      .delete()
      .eq('username', 'supabot');

Get Count

import 'package:postgrest/postgrest.dart';

final url = 'https://example.com/postgrest/endpoint';
final client = PostgrestClient(url);
final response = await client.from('countries')
      .select<PostgrestResponse>('*', FetchOptions(count: CountOption.exact));
final data = response.data;
final count = response.count;

Contributing

  • Fork the repo on GitHub
  • Clone the project to your own machine
  • Commit changes to your own branch
  • Push your work back up to your fork
  • Submit a Pull request so that we can review your changes and merge

License

This repo is licensed under MIT.

Credits

About

Dart client for PostgREST

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 96.5%
  • PLpgSQL 3.5%