JKHeadley / rest-hapi

πŸš€ A RESTful API generator for Node.js
https://resthapi.com
MIT License
1.19k stars 153 forks source link

Some questions. #123

Open sustained opened 6 years ago

sustained commented 6 years ago

This looks fantastic, great work! :open_mouth: Definitely going to give this a try.

Just have a few questions.

JKHeadley commented 6 years ago

Hi @sustained, thanks for the interest! I'll try to answer your questions to the best of my ability.

Are any large/notable projects/products using this in production yet, if so what?

There are a few projects I have worked on for clients that are founded on rest-hapi. Most of them are most likely still in the mvp stage. I would say the divy app is probably the most 'mainstream' project using rest-hapi.

Does this have any commercial backing of any kind?

There currently isn't any commercial backing for the project, though I am certainly open to the possibility.

If not, are you (lead dev(s)) part of a company which are "dogfooding" this?

I suppose you could say there has been a level of 'dogfooding' for a large portion of the project development as I have used it in several projects for clients.

If not, do you have a Patreon campaign (or anything of that nature) to allow people to support continued development)?

I do not, although I should probably look into that πŸ˜‰

Have you yourself come across any gotchas/problems while using MongoDB/Mongoose to power your entire API?

No system is perfect, but I would say I have been very pleased with using MongoDB/Mongoose so far. I suppose the biggest 'gotchas' would be the common pitfalls that come with most NoSQL databases. (Not acid compliant, data inconsistencies, etc). I believe the structure rest-hapi provides alleviates many of theses issues.

Isn't re-implementing relational features on top of NoSQL an absolute ton of work and gonna be hard to battle-test and hard to maintain etc.? πŸ˜…

Looking back I don't think it was too much work to add in relational logic given the awesome tools that Mongoose/MongoDB already provide. I did put in a large amount of time adding unit/e2e tests which could definitely be improved. So far the tests seem to be keeping things in order pretty well. As far as battle-testing goes, I've used rest-hapi in multiple personal and client projects with several users/QA testers. Many bugs have been found and worked out and at this point it seems to be running rather smoothly. I have however found some very useful advantages in using a NoSQL database with a framework that supports relational structure.

How can not-particularly-good programmers help (trying to get into open-source - specifically, want to try starting to contribute to the software I use for my big project).

Great to hear! I've tried to add the help-wanted label to any issues/feature requests that I believe would be good tasks for those interested to look into. There are also several TODO comments listed in comments throughout the project. You could always search for TODO and see if anything sounds interesting. I'm open to any questions/suggestions about the code you might have. Besides that I am hoping to soon move the majority of the README content into an official 'docs' website powered by docusaurus. You can find that project here. Any help on that front would be greatly appreciated as well.

Will this always be a MongoDB/Mongoose-only thing? If not, thoughts on adding support for models built on relational databases too (could perhaps be built on Objection.js (which is built on KnexJS))?

I would love to add support for other databases. Unfortunately most of the functionality is so tightly coupled to mongoose features that it would be a large undertaking to do so. That doesn't mean it's out of the question, but it's not on my priority list right now.