integration - Design: Exposing user interface behaviour to external systems -


I am working on a web application (JavaEE backend) which has a very complex input modal. Allows to capture data, but there is a bunch of mandatory fields such as areas (javascript) restrictions, fields can only be available when a specific value is entered.

I want to expose this functionality for external systems and allow them to submit this data to their server. These external systems can be based on both web or client (but I can assume that Customers will use the internet). My first thought is to provide such things as mandatory for these systems through definitions and services of any kind in the field, and they have to present the input modal, though they want it to be mixed with resistance, because the next few months of development During the time the possibility of the types of fields and restrictions will be greatly reduced. These external systems have different deployment deadlines, and for this to work, we have to duplicate all the arguments controlling these restrictions in all systems, and in other ways our deployment must be synchronized.

An alternative that has been proposed is to call external models via standard HTTP to my model and present it in either an iframe or embedded render. This resolves all the previous complaints, but it seems to me a little uncomfortable.

Is there any alternative that we are not thinking? Maybe some types of UI schemas with existing render libraries for different platforms? What are your thoughts on the second offer, is there any major concern or is it the "best" solution?

EDIT: To clarify, I can of course not just rely on incoming data, regardless of forwarding decision backend verification.

Those obstacles that you mention (compulsory fields etc.) actually nothing with the user interface You are also right that your backend is not a good idea to present web content.

Your first proposal seems like a good idea, here's how I will solve the problems you mentioned:

  • Do all the assumptions on the backend and the UI Send model object to the client representing the current status of (field name, type, enable / disable, error message, etc.)
  • Keep the customer as dumb as possible It should be responsible for presenting the model to the window / webpage. Whenever a field is changed and it requires verification, submit the model to backend for verification and retract the new model that appears. (You can customize it only to return the field that has changed.)

By doing this, your verification logic will be placed in a backend and the client is hardly Will ever need to be modified.


Comments

Popular posts from this blog

Python SQLAlchemy:AttributeError: Neither 'Column' object nor 'Comparator' object has an attribute 'schema' -

java - How not to audit a join table and related entities using Hibernate Envers? -

mongodb - CakePHP paginator ignoring order, but only for certain values -