Your question is very general, so answers will be general too.
Play (in this post I will refer to version 2+) has many features built-in like router, sessions, memory-cache, DB support, job scheduler (Akka), MVC, etc, etc. I like to use Play to built public APIs, however in most of my cases these APIs are just an addition to some web-app.
If you plan a large traffic on this API (from many clients, with many calls per second) that would be good choice, as you can make good usage of the described elements (cache would be most interesting feature in this case).
On the other hand, Play's small app with all basic libs weights ~50mb, so if you plan to publish really simple API which will render single data set and it need to serve only few request a day, maybe simple construction will be just easier and lighter solution?
Finally: Play works on it's own server and it's best option, it's fast, built-in, doesn't require any additional config, just dist
your new app and run it on some port. If you definitely want/need to deploy your application as a WAR you can do it. Although Play 2.x has NOT built-in WAR support, you can use a plugin dedicated to this : https://github.com/dlecan/play2-war-plugin/
.class
files that are packaged in an archive like a JAR. And a WAR can contain JAR files. And regarding Play; it has it's own bootstrap mechanism and is not deployed to an application server like Tomcat (that could be done in Play 1.x version but not in the 2.x versions). – maba May 29 at 22:30