As a follow up from a discussion yesterday on a thread sharing an Angular template, I’d like to share an application template.
This is a .NET Core (3.1) API designed for integrations between client applications (like a web application) and Epicor services over REST API. The advantage to this kind of approach is it allows your client application to be rather Epicor agnostic. This greatly improves testability and modularization of your integration solution.
Additionally, this approach can easily bundle other services into a unified API for multiple client applications.
The technical details are in the repository readme, but the overall there are two main concepts.
To retrieve data from Epicor, BAQ Services are utilized .
To orchestrate transactions in Epicor, Epicor Functions are utilized.
In my experience, Functions are the way to go over native Epicor REST Busines Object services for transaction orchestration. I could write a novel on the topic, but I did want to point out that this particular template provides methods to invoke BAQs and invoke Functions.
An application like this would typically live behind a firewall or API gateway and be exposed to only the calling client application. In this way, no Epicor secrets are stored in the client application (outside of the api_key client parameter).
Anyways, hit me up with questions or comments. Hope it’s useful!