mvREST
Real World REST
Availability (contact me):
- UV
- UD
- D3
- QM
“
Whilst the vendor tools (U2RWD, Connection Pooling and MVIS) do a great job of providing the nuts and bolts for creating RESTful services,
when it comes to working in the real world there is so much more to delivering a scalable and supportable solution.
mvREST provides an enhanced middleware layer, server side REST calls and a back end framework to get you up and running with everything necessary to build your web sites or B2B connections, so that you don't have to invest the time reinventing the wheel.
Pull data from files, commands, Python or UniBasic using a structured and validated approach, manage complex JSON payloads snd support both client side and server side REST calls in a single solution.
mvREST provides an enhanced middleware layer, server side REST calls and a back end framework to get you up and running with everything necessary to build your web sites or B2B connections, so that you don't have to invest the time reinventing the wheel.
Pull data from files, commands, Python or UniBasic using a structured and validated approach, manage complex JSON payloads snd support both client side and server side REST calls in a single solution.
More than REST
REST is the de-facto standard for surfacing your MultiValue application to the web or for feeding information to partner systems in a standards-compliant manner.But it is also opaque and your working methods can be difficult to test and debug without the end to end calls, where they are hidden behind the client side connection or require painful redeployment for every change or addition.
For UniBasic developers, working with JSON can be long winded and difficult. The UDO library is tortuous and the dynamic array mapping in the vendor tools are often too limited for the real world. JSON payload requirements may change with little notice resulting in time consuming and costly rewrites.
MVIS Data Sources are simple and useful but lack essential validation and security. And none of these allow you to make and consume REST calls directly from the server for business to business connections.
mvREST extends the vendor-supplied tools with the additional capabilities you need for supportability, deployment, server side calls and ease of use.


Extended Middleware
The C# middleware provides the end point for your application, forwarding requests to RESTful services or leveraging UO connection pooling, whilst delivering a range of additional services to improve scalability and ease of use, including caching of static data to reduce the server load, integrated authentication through LDAP, broadcast facilities using SignlR, improved CORS handling and more.As new vendor solutions appear, this additional layer allows you to swap in and out the best of the current middleware protecting your investment on both sides.

Visible and Supportable
For improved support the framework offers capture, replay and journaling so you can test and re-run your code in isolation on the server, watching for error messaging and adding break points: essential for problem solving without the black box effect of debugging standard REST services alone. Logging and auditing are naturally included. Real world concerns such as data validation, limiting requests and interfacing with your existing functionality are at the heart of this solution.
Testing, testing...
By separating out the intricacies of REST processing from the working code, developers can use tools like mvTEST and mvInstaller to write, unit test and deploy their REST code without impacting on the REST service itself.
Back End Framework
At the back end, the mvREST framework provides a single model for calling UniBasic or Python routines using flexible method definitions. mvREST Methods are mapped to UniBasic subroutines or Python classes that can be easily tested and version controlled in isolation, and of which hugely simplifies deployment.The inbuilt REST dispatcher and tools automatically handle security and session management using a flexible tag-based model that can be attached to users and to methods or accessed from within your code, removing one of the major headaches when converting your solution to the web.
mvREST works for your developers, generating metrics for performance, offering extended maps for converting between dynamic arrays and JSON formats so they can elect to process requests and return results using regular MultiValue formats, and managing the 'webification' so they can concentrate on writing high quality regular subroutines and/or Python code.
REST Maps
REST maps provide for separation of duties, formatting your data to and from JSON whilst allowing your developers to concentrate on the nuts and bolts of working with familiar data. REST Maps can augment the data and present arbitrarily complex JSON or XML.
Data Sources
mvREST Data Sources support searching, data typing, validation and transaction control straight out of the box. Use REST Maps and callback subroutines for additional processing, or when handling large volumes of data in business to business operations.
Server Side Calls
The Rocket tools can expose your system to third parties, but what about working in the other direction? mvREST uses the same semantics for your server side REST connections whether pushing or pulling data at scale for easy integration into your applications.