Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow developers to initialize the Rest and Socket config separately #28

Closed
Dahkenangnon opened this issue Mar 8, 2022 · 6 comments
Closed
Assignees
Labels
enhancement New feature or request

Comments

@Dahkenangnon
Copy link
Owner

Add offline database support Add synchronization with remote api

Seem like they'd be ideal!

These would be incredible features 馃殌
If it isn't possible yet: Allow developers to initialize the Rest and Socket config separately (especially the baseUrl) or as the official feathers-client, let the developer decide whether to work only with socket or rest. An example:

I host a Feathers API behind a reverse proxy at https://my-app.com/api - then the socket configuration would still need the https://my-app.com/ because the baseUrl of https://my-app.com/api would imply that the socket.io uses "api" as the namespace. On the other hand, the Rest API would still need the https://my-app.com/api as baseUrl. Therefore this should be configurable separately.

An idea for this could be, to initialize the package in flutter like the feathers package. Therefore to keep the mentality of feathers to be independent of the transportation mode and the package is easily extendable for the Primus Client for example.

A example initialization could be:

Socket.io

import 'package:flutter_feathersjs/flutter_feathersjs.dart';
import 'package:socket_io_client/socket_io_client.dart' as IO;

FlutterFeathersjs client = FlutterFeathersjs();
IO.Socket io = IO.io(baseUrl)

client.configure(FlutterFeathersjs.socket(io));

client.service('messages').create({
  text: 'A new message'
});

Rest (With Dio)

import 'package:flutter_feathersjs/flutter_feathersjs.dart';
import 'package:dio/dio.dart';

FlutterFeathersjs client = FlutterFeathersjs();
Dio dio = Dio(BaseOptions(
      baseUrl: baseUrl,
      headers: extraHeaders
));

client.configure(FlutterFeathersjs.rest(dio));

client.service('messages').create({
  text: 'A new message'
});

Originally posted by @dmatuschek in #19 (comment)

@biloo-dev
Copy link

The method 'configure' isn't defined for the type 'FlutterFeathersjs'.
The method 'socket' isn't defined for the type 'FlutterFeathersjs'.

@Dahkenangnon
Copy link
Owner Author

The method 'configure' isn't defined for the type 'FlutterFeathersjs'. The method 'socket' isn't defined for the type 'FlutterFeathersjs'.

Hey @biloo-dev .

The code above are just for demo of the next major version of this tool which is not yet available.

Please wait a bit.

Have a good morning.

@Dahkenangnon
Copy link
Owner Author

The method 'configure' isn't defined for the type 'FlutterFeathersjs'. The method 'socket' isn't defined for the type 'FlutterFeathersjs'.

The new version should be released this month.

@biloo-dev
Copy link

Thanks @Dahkenangnon It will be great to see what you come up with next

@Dahkenangnon
Copy link
Owner Author

Yeah @biloo-dev

@Dahkenangnon
Copy link
Owner Author

Thanks @Dahkenangnon It will be great to see what you come up with next

**UPDATE AVAILABLE 馃殌 **

Please try the recent pre-release https://pub.dev/packages/flutter_feathersjs/versions/4.1.0-dev

For any discusion about this prelease, please use disccusion under the release. #46

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants