I personally like the approach of defining things via an OpenAPI and then using Dredd to validate the spec against itself.
Even for tools that generate the spec from source code, it is usually still possible for user error to define the metadata for an endpoint incorrectly. Dredd catches that.