codeuino / social-platform-donut-backend

Donut API:
http://donut-api-prod.codeuino.org/
GNU General Public License v3.0
24 stars 57 forks source link

Client Libraries for Donut API Server #145

Open kmehant opened 4 years ago

kmehant commented 4 years ago

About

There is a possibility to use Donut as a micro-service within a huge application, in such scenarios providing client libraries would be helpful for developers for easy integration of Donut within their applications. We can cover relevant Donut features within the client libraries. We can provide these in various language options like JS, python, go, PHP, and others.

kmehant commented 4 years ago

@jaskiratsingh2000 @devesh-verma @vaibhavdaren What do you think about this feature (Client Library: API wrapping).

PS: I have good experience in writing client libraries.

jaskiratsingh2000 commented 4 years ago

Looks amazing to me. Here I would like to have a pointing thoughts from our current GSoCers who are actually working in the same process. @Rupeshiya and @AuraOfDivinity what do you think about this?

Rupeshiya commented 4 years ago

Hi, I think it's good to have but I am not sure how will it be useful for donut platform as it's only like wrapping up the APIs for easy consumption. Also as DONUT will be a self-hosted platform so if any community wants to use it then they should have to install it on their server instead of integrating it.

kmehant commented 4 years ago

Hi, I think it's good to have but I am not sure how will it be useful for donut platform as it's only like wrapping up the APIs for easy consumption. Also as DONUT will be a self-hosted platform so if any community wants to use it then they should have to install it on their server instead of integrating it.

@jaskiratsingh2000 @Rupeshiya other than easy consumption we will have many production ready features like rate limiting, timeouts and retry mechanisms.

If donut is planned to be a self hosted server, then it is highly useful to have client libraries. Self hosted does mean having their own copy of server running and integrating it to their application base ( which can be in any language) will surely consume the language specific client libraries. Does it sound useful, @Rupeshiya thoughts?

kmehant commented 4 years ago

@Rupeshiya bridging to the point self hosted I guess we should give necessary infra for the people to use for their on-premise deployments, container images would be a partial work for this (which I have completed ✌️) and there is more configurations to be provided for orchestration, monitoring and alerting systems within the infra. Which would help community to make best use of self hosting of Donut. Where we can discuss the archi and move forward. PS: I can work on this part too

vaibhavdaren commented 4 years ago

We can surely do this in the future but my current target is the security layer and caching layer.

vaibhavdaren commented 4 years ago

Todo:- [1] Structure code in a way wrapping up is possible. [2] Write microservices for each module with security. [3] Set up local logstash and kibana. ...

kmehant commented 4 years ago

We can surely do this in the future but my current target is the security layer and caching layer.

@vaibhavdaren I have some experience in implementing cache layers for Servers, are you looking at using a key-value store for caching for example using a Redis sentinel or cluster or simply redis single instance?

jaskiratsingh2000 commented 4 years ago

@vaibhavdaren Why can't we go for it now? Maybe we could give away a green flag to him to take this up if he is interested. I would personally say he should take this up and wok accordingly.