Hi @NickRobles2 ,
We're trying to work out where to move the question to get you the best answer. Can you tell me a bit more about why the back-end will interact with services rather that the app doing that? And does it have to be built in Java, or are you open to other technologies?
A little background, probably you know a lot of this:
The general model we follow for web apps is to let the services do any interaction with the db, abstracting direct db access into a set of REST APIs. Those REST APIs (which also cover other things you mentioned, like query, edit, working with attachments, reading service metadata, etc.) are documented here: https://developers.arcgis.com/rest/
We have many APIs that work with those REST APIs, and they broadly break down into APIs for working directly with services, and APIs for building 2D/3D apps using those services.
The former are a couple of APIs that wrap GET/POST/etc. calls to the REST APIs: the ArcGIS REST JS API, and the ArcGIS API for Python. The Python API has been around longer and has more capabilities, but is for building apps and scripts that process data, so probably not what you want. ArcGIS REST JS is more suited to building a server-side component to support web clients. This sounds closest to what you're asking for, but is JavaScript.
Of the group of APIs we have for building 2D and 3D apps, there is the ArcGIS API for JavaScript, and the ArcGIS Runtime SDKs. Both are meant for building apps, and using Runtime SDKs to build a backend services is against our terms and conditions.
One other potential option: If you already have ArcGIS Enterprise and expose services, and just want to expose more sophisticated behavior for those services, then Server Object Extensions (SOEs) and Server Object Interceptors (SOIs) are likely a good solution.
It boils down to:
- Do you really need to have this logic in the back-end or can it be in the web app, hitting services?
- If SOEs and SOIs will do the job for you, I'll move this question over to here. If not, you'll need to keep working with the REST services. If the backend can be written in JavaScript, you might be able to lean on the ArcGIS REST JS API.
Does that help?