It's actually not about doing one or the other but about deciding on each strategic element separately, and there are no general reasons against doing both. Also, doing the latter can lead to the former. And, concluding: you do not have to open an API for all your competitors to use it. Depending on the actual circumstances, that could be a dangerous decision.
See the answer on Quora: