I need to share an identical endpoint on two REST API servers in node.
Let's call it `/items`. It's a CRUD-like endpoint, a bit extended with our
specifics. We also inline apiDoc comments into our routers there so that
the client devs can also reuse this.
What are some good patterns to keeping those two APIs with their endpoint
in sync? Currently for us it's a copy-paste job, so naturally it comes out
of sync on occasion. Due to access restrictions, various consumers can only
access one or the other.
I was considering two options, and I want a little help.
Shared module version
I'm thinking about a shared repository, but I'm not certain what is a good
approach there. We have some common, shared endpoints which our various
APIs and services require, such as data model abstractions, logging,
utility, but this doesn't exactly fit into one of these.
What would I export from such a module? A self-contained, mountable express
path would be cool, like:
import { itemsEndpoint } from 'the-shared-repository';
app.use('/items', itemsEndpoint({ dbStuff, utils }));
To me it sounds relatively decent, but could be the downsides? Besides
having to find a way to keep apiDoc in sync.
Gateway version
Another idea I'm considering is to actually do build a standalone server
(http, MQ-based, whatever, we're fully into "microservices"), and then use
my two REST APIs only as pass-through gateways.
Again, I'd also need a way to share apiDoc documentation too here.
I know it's partially opinion-based, but which seems more right or less
wrong or easier to maintain? I think in the future I might move more of our
stuff to similar architecture, so I want to get opinion of this esteemed
forum :D instead of basing the decission my humble, limited thoughts.
--
Job board: http://jobs.nodejs.org/
New group rules:
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
---
You received this message because you are subscribed to the Google Groups
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/nodejs/3e32acb8-afd8-471d-843f-f1e49ed8b800%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.