Hello,
That totally depends on your use case and feasibility how you want to use the APIs
1. While using the servlet you have more feasibility on the usee permission level if you have any sensitive dam assets, you have more control over the servlet as it is easy to access the JCR ApIs
2. If you want to expose the API other than AEM world IO will be acting as the common microservice architecture where all the API will be centralized by project and can be used by other teams needed
If you have more team comfortable with Java go with servlet for productivity as it may take sometime for people to adjust for Javascript and actions in IO