I am building an API and I am returning this kind of status codes for each method (e.g., "register_user"):
200
(OK) when the user has been registered successfully403
(forbidden) when there are missing parameters in the request409
(conflict) when a user was already registered
In addition to the status code, I return a "message" field explaining what happened. Do you consider returning these codes in this example a good practice? Or should I return 200 in all of them but an error in the "message" field?