21. June 2016
With great pleasure Dataloy presents API 3.1
Issues resolved - listed by user story
Highlights of this Release:
Highlights of Dataloy API 3.1
Extend Returned Fields of a Given Endpoint by Subobjects Returning "Default" View
It is possible to extend returned fields of a given endpoint by asking for each subobject to return its "default" view. It can be done by specifying in the JSON message of the "fields" property attached to the HTTP header the property "all":"*". For example, the following JSON attached to the VoyageHeader end-point:
{ "company":{ "companyCurrency":"*" }, "voyage":{ "all":"*", "portCalls":{ "all":"*" } } }
will return:
- the companyCurrency attribute of the company of the VoyageHeader, attribute normally not returned from the VoyageHeader end-point
- the default view attributes of voyage and portCall objects
Ensured Transactional Context During Any POST and PUT Resources
All statements of all API calls are now executed in the same single EJB transaction.
Introduction of Generic Mechanism to Invoke Pre-process Checks Before Deserialization of JSON Objects
A generic mechanism to invoke pre-process checks before the deserialization of JSON objects is indroduced. Pre-process components for Cargo and CargoPort objects have been created so when a cargo is POST or PUT the following controls are performed:
Non-lumpsum cargo:
- Changing cargoQuantity in a cargoPort does not trigger any calculation on cargoQuantity of other cargoPort.
- The cargoQuantity at cargo level is calculated summing the cargoQuantity of loading ports
- freightRate cannot be assigned in both discharge and loading ports.
- The cargoQuantiy used for calculations are those in cargoPort. cargoQuantity at Cargo level is not used in calculations.
- Freight and freightRate used for calculations are those in cargoPort.
- API will not use stowageFactor and weightFactor from Commodity.
Lumpsum cargo:
- cargoQuantity and freightRate must be assigned at Cargo level.
Port Cost Breakdown Available from Port Call
Port Cost breakdown can be accessed from portCall.portAgents and from portAgents.portCosts. By default, only a link is provided. Use the functionality Adjust Number of Fields to be Returned from a Request to retrieve all that is needed in a single request.