This is the website of dronekit-python api. http://python.dronekit.io/
I checked the examples and also online git repo, it seems all examples are built on top of mavproxy. and API itself doesn't have mavlink communication capability.
I wonder if there are any other use cases for droneapi. and if I don't want to use mavproxy, does it mean I have to write my own mavlink layer?
Yes, using the current release implementation (1.x) everything is built on MAVProxy.
I understand that the intention is that in future you will not necessarily have to run your apps from within a MAVProxy console (I don't know if the actual dependency on MAVProxy is being removed - I supsect not!)