I'm new in DreamFactory, and want to know if DF can be used to build a Platform to my work.
This is the scenario for you to better understand what I intend:
1) Have a website (our services) with 3 type of users:
- Admins: me/company - manage the API, manage services we serve, etc;
- Developers: 3rd party developers who want use our service (through our API) in their apps, can create "Keys" to use in their apps, one per app, manage other stuff in our website;
- Users: registered users who use our services, see stats, and services subscribed;
2) The website (service) is build using the API created by us;
Isn't the API management, it is a frontend website to our users. Our intention is to have a domain to the API and another to the website service;
3) "Developers" users have a 'Key' to make requests to our API in their apps. Can request authorization to registered Users to access their information (some fields of user, something like FB Login/Connect);
Is possible to do this with OAuth in DF?
4) "Developers" need to have access to the API Docs, only endpoints to them, not all;
Is possible to define what API have access?
- JWT and OAuth2
How can manage OAuth2 to 3rd Party "Developers" ?
The session/token in managed by DF or need some development by us?
Is possible to have JWT to user login in website (requests to the API) ?
6) Change the API endpoint, DF have something link this:
and want something like that:
Is possible ?
7) Our API need to connect to 3rd partners (example: PayPal, Paysera, Amazon S3, others), already exists libs to do the connection and can be integrated with composer.
Can be integrated with DF?
8) Type of content in the requests to the API:
- File Upload: PDF, Images
- Text, Number, Datetime (with validation)
Is possible to send file, in the API then process the file/image and send to Amazon S3 ?
Is possible validate the sended fields, have "rules" or "validators" ?
9) Have 2 tables to users, the 'User' table (basic information, like: email, password, username, and few more) and another 'UserDetails' table where can find more about the user (country, birthdate, address, etc), their are connected Master-Slave (1:1).
Can have a API endpoint to get all fields, from the two tables ?
Can have a endpoint like this:
GET /api/v2/users/1 (get some fields from table 'User')
GET /api/v2/users/1/details (get fields from table 'UserDetails')
10) When return records from the BD can manage who can have access to the records ?
Like: the "Developers" have an app, from a list of 10 Users, only have authorize 3 Users, when 'Develop' want to know their users only 3 records are returned, is possible ?
It is a lot of questions, but can have a be picture about our needs, and I get a better view on what DF does and fits for what we want.