I had requests post Insights for this (internal and external).
A quick overview of the three major approaches to doing integrations and some code samples.
I see a few hundred other examples being needed and cataloged but I wanted to do a quick comparison between the three to start. It’s code so there will always be differences of opinion. If you express yours I’ll take that as a todo to incorporate trade offs and concerns into the decision process.
I’ll probably be moving to Github in the near future but for now just pushed it to my one drive.
This is 4 hour plane flight quality so abuse and but be kind.
Since REST uses standard HTTP it is much simpler in just about ever way. Creating clients, developing APIs, the documentation is much easier to understand and there aren’t very many things that REST doesn’t do easier/better than SOAP.
REST permits many different data formats where as SOAP only permits XML. While this may seem like it adds complexity to REST because you need to handle multiple formats, in my experience it has actually been quite beneficial. JSON usually is a better fit for data and parses much faster. REST allows better support for browser clients due to it’s support for JSON.
REST has better performance and scalability. REST reads can be cached, SOAP based reads cannot be cached.
With IoT devices gaining popularity making use of REST comes almost out of the box with every framework nowdays. If you also do MicroServices, Domain Driven Design, Modular Design you will find REST to be the best choice.
I personally am very thrilled about the REST API and I dont run my WebApps on Windows but rather on Linux with nginx/apache so I dont have to try and deal with somehow knowing about .dll’s of Epicor by using REST. If you decide to change the logic of a BO you will still probably offer API versioning and you wont break my Web Apps, Mobile Apps if I use the REST API which is another win.
Lastly, since you guys utilized OData you have a solid foundation.
I could probably use http://www.tessel.io/ today and make use of the REST API of Epicor and get going fast with JavaScript =) or Raspberry Pi with a LCD Screen under 200$ and a custom UI to create a Employee Time Clock which could be mounted on the wall =)
could you guys provide better insight about configuring network binding protocol please??
my current test system in net.tcp which is UsernameWindowsChannel .
to start trailing REST API i am changing the endpoint as HttpsBinaryUsernameChannel. ticked the Enable Restresourfull checkbox and deployed. regenerated data model.
but when i connect to appserver, system says below error. how to handle this?
There was no endpoint listening at https://epicor/Epicorresttest/Ice/BO/UserFile.svc that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerExceptinner exception error.txt (2.6 KB)
ion, if present, for more details.
ahh ok. so, creating cert & binding to the site is what i m missing. i thought they are only applicable to ssl
i was following REST Implementation (Technical Preview) section out of the epicor help guide. it did disclose anything about cert. probably, i am using wrong guide. should have used the technical guide from epicweb. anyway, i will create one and keep you posted.
browser throws warning, and prompting for login credential (i am domain admin).
however, even if i enter the credential, it again pops up the same dialog box.
thanks @hkeric.wci and @Bart_Elia … reached the help screen now… i have to run the ie in admin mode. yes, its epicor login credential… game on . excited.
i have done that @Bart_Elia … imported the certificate and added to my trusted certificate list … still didnt resolve the issue. i will also try to work out something in c#. take it easy and enjoy grandparenthood …
Which example were you running to get that error and which binding are you running?
Anything binding can be used for the Impl as long as the client and server match.
The SOAP REQUIRES BasicHttp or SOAPHttp at the server.
REST does not use bindings so doesn’t care.
I’ve just done the setup for this on my test system. I was able to login once to https://EpicorTEST01/ERP101600ChillStore/api/help, and from another PC as well (had to create the firewall rule for port 443). Now though, whether on the server or the same PC that was able to connect remotely, I just get an HTTP 500 error. I’ve rebooted the server, but still the same.
Any clues? Nothing changed between it working and now not.
500 error is what everything is mapped to all the time - this was discussed at Insights how everything is mapped to it for a result code and details are logged in Server Event log - known limitation for now. See the article ‘Flight Data Recorder’ up here for details
I got it working again by playing with the authentication methods available on the virtual folder in IIS.
Anonymous Authentication was already enabled
I enabled Digest and Windows auth, and now it shows me the help, and I can try using the examples given by Bart but I now get a failure because the password is expired.
We don’t use Epicor usernames and passwords usually, it’s configured to use Windows auth and SSO. I have tried on my test system allowing net.tcp and HTTPS with the option HttpsBinaryUsernameChannel. What does my client config file need to look like, to be able to connect to the app server using https to reset password? When I try connecting now, I immediately get an error: