RE: Power BI API Query/page best practice question -
I'm a big fan of creating one api per fact/lookup table you require in Power BI.
The advantage is that these apis are then your building blocks you can reuse in other reports, and in Power BI Dataflows.
For the apis related to fact tables, you should also implement grouping/aggregating, to get the data at the level of granularity required in Power BI, not lower.
Then, also implement DataAccessIntent = ReadOnly, to get better performance.
In the apis you create, you can add other data items ofcourse, and in a query api, you can easily implement joins (inner, left-outer,...).