
Show HN: Auto generate REST API from Mongoose schemas - aciswhat
https://github.com/cktang88/mongoose-api-generator
======
_bxg1
For a long time I've thought that the idea of having an entire, Turing-
complete layer between the database and the HTTP API felt like overkill. You
know your collections, you know the shape of your data, auth doesn't vary much
between orgs. Unless you're doing interesting computations after querying, why
do you have to _program_ those endpoints over and over again for each entity
in each project? It just seems silly.

I'm honestly surprised there aren't more projects like this

~~~
xgenecloud
>> why do you have to program those endpoints over and over again for each
entity in each project? It just seems silly. I'm honestly surprised there
aren't more projects like this

This is exactly what got us started - we are solving automatic REST-GraphQL
API endpoint creation for all SQL databases. Check us out
[https://github.com/xgenecloud/xgenecloud](https://github.com/xgenecloud/xgenecloud)

~~~
aciswhat
Wow this looks awesome!

------
aciswhat
Hello Hacker News! This is something I quickly prototyped yesterday to
automatically generate a REST API from existing Mongoose schemas. It's
incredibly useful for mocking your exact backend, or just spinning up an MVP
backend.

Authentication is also built in (currently only supports email/password, but
more in the works). I implemented granular permissions for API routes that can
be set via configuration really easily, which uses JWTs from the user login.

~~~
xgenecloud
>> Creates a hot-reloading server that auto-updates whenever models are
updated or created.

This is neat.

Does this mean - if your generator finds a new model in mongodb, it
autogenerates model file within the folder and vice-versa it creates APIs if
there is a new model file within model folder ?

~~~
aciswhat
Yes, if it finds a new model in the `./models` folder, it'll automatically
create those endpoints!

------
5986043handy
This seems pretty useful! Will try out for my next side project.

