Integration Development: Migration to .Net Core
In MYOB Acumatica 2024.1, the changes described in this topic have been made to support .Net Core in OData Version 4.0 and the contract-based web services APIs.
OData Version 4.0 Changes
A developer can find the following changes in OData Version 4.0 responses:
- A request for $metadata returns an additional attribute,
Scale="Variable"
, forEdm.Decimal
types, as shown in the following example.<Property Name="ControlAmount" Type="Edm.Decimal" Nullable="false" Scale="Variable"/>
- In a request for $metadata, if the $format=json parameter has been specified, an error is returned. In previous versions, the parameter was ignored, and XML was returned.
- An empty response body is returned if the response code is 404 Not Found.
- A request with an unsupported HTTP method (such as
POST
,PUT
, orDELETE
) now returns 405 Method Not Allowed instead of 404 Not Found. - A request with an invalid
OData-Version
header, such as 6.0, now returns 400 Bad Request instead of 404 Not Found. - If full metadata is requested, such as in the following request, the value of
@odata.id is different from what was returned in the previous versions.
https://localhost/instanceName/ODatav4/tenantName/ARSetup ?$format=application/json;odata.metadata=full
The new value includes the full path to the service, such as "@odata.id":"https://localhost/instanceName/odatav4/tenantName/ARSetup"
- In previous versions, if the client did not specify the
Accept-Charset
header in a request for $value (such as the one shown below), the UTF-8 BOM (byte order mark) was added to a response. Now the UTF-8 BOM is not added.https://localhost/instanceName/ODatav4/tenantName/BAccount('C000000001')/AcctName/$value
OpenAPI 2.0 Changes
The following changes have been introduced in the OpenAPI 2.0 files of the REST API endpoints:
- Every operation now includes
"produces": ["application/json", "text/json"]
because every operation can returnHttpError
as JSON. - The default values (such as
"consumes": []
,"required": false
, and"properties": {}
) are no longer emitted. - When
schema
is a reference (such as"schema": {"$ref": ..."}
), it no longer contains"type": "object"
. - The order of parameters has been changed:
"in": "body"
is now placed after"in": "query"
.
Full Removal of the Contract-Based SOAP API Support
Contract Versions 2 and 3, which supported the SOAP API, have been removed in MYOB Acumatica 2024.1.1. In MYOB Acumatica 2024.1, system endpoints with Contract Versions 2 and 3, which are Default/17.200.001 and Default/18.200.001, respectively, have also been removed.