Reject non json

A bit unsure of the check for body existence. Feels clunky.