It would be nice if it was possible to merge the CreateShapeParams and CreateShapeBody POJOs into one CreateShapeRequest and have a single argument handler method. Then we could rewrite the controller as:
This would enable an API structure that is becoming more and more common.
For example, AWS SDKs have XyzRequest classes that encapsulate all the request details, from parameters to body and, IIRC, headers too (which means org.springframework.web.bind.annotation.RequestHeader should be allowed on POJO fields and setters too).
Response-side annotations (e.g. ResponseBody, ResponseStatus, etc.) should be allowed on fields (and setters) as well.