-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: V4.0_CSD01
-
Fix Version/s: V4.0_CSD02
-
Component/s: ABNF, ATOM Format, CSDL XML, JSON Format, Protocol, URL Conventions
-
Labels:None
-
Environment:
[Applied]
-
Proposal:
-
Resolution:
The goal for action and function overload resolution is that the overload can be identified by inspecting the URL only.
This goal leads to restrictions on which overloads can be defined.
Actions
- non-bindable actions cannot have overloads because the URL just contains the action name, all parameters are in the POST body
- bindable actions can have overloads based on the binding parameter type because the binding parameter is specified in the URL
This is captured in the current spec text.
Functions
- the first parameter for bindable functions can be specified as a path prefix, not specifying the parameter name
- other parameters are specified with name and value in the URL
- numeric literal values don't differ within the type families "Integer" and "Float"
So for bindable functions the following information is available for overload selection:
- names of non-binding parameters
- type of binding parameter
- type family of non-binding parameters
For non-bindable functions the following information is available for overload selection:
- names of all parameters
- type family of all parameters
Type families are
- Integer: Edm.SByte, Edm.Byte, Edm.Int16, Edm.Int32, Edm.Int64, Edm.Decimal with Scale equal to zero
- Float: Edm.Single, Edm.Double, Edm.Decimal with Scale not equal to zero.