I know run the Lightweight contract is a normal way.
But there is no problem with using remote api as lightweight contract and even this can be work without running ardor node. Or is there any problem with only using api for making dapp?
You can use a remote API, but if you are using it with a lightweight contract you will want to use a remote node that you own. What's to say that the remote node will stay up/in sync/updated otherwise?