A custom API returns a risk summary for a supplier and never changes any data. It will be called only from TypeScript through the Dataverse Web API, and testers want to call it from a browser address bar. How should the developer define it?
Select an answer to reveal the explanation.
Short Explanation
Think of a function as a question and an action as an order. If your API only answers questions, make it a function so testers can paste a GET into the browser. Here's the trap: a function with no response property is invalid and won't even show up in $metadata.
Full Explanation
In OData, a function is an operation invoked with an HTTP GET request that returns data without making changes, while an action is invoked with POST and may change data. Setting the custom API's Is Function property to true makes it a function, so parameters are passed in the URL and a tester can call it from a browser. Microsoft requires functions to return data, so at least one response property must be defined; a function without one is invalid, does not appear in the $metadata document, and calls to it return a not found error. Leaving response properties empty is therefore broken rather than minimal. Is Private hides the API from the metadata document and from code generation to signal that other developers should not depend on it; it has nothing to do with read-only behaviour or HTTP verbs. The custom processing step type controls whether other solutions can register synchronous or asynchronous steps; it does not change the verb or prevent writes. Exam caveat: the Dataverse connector in Power Automate performs only actions, and functions cannot be enabled for workflow, so an operation that flows must call should stay an action. Operational check: confirm the function appears in $metadata with its return type and that a GET request returns the risk summary.