In RESTful API, Are Resources need to be directly in relation to domain models?

Are Resources need to be directly in relation with domain models?

No. In fact, it's been argued that they shouldn't be.

Your data model is not your object model is not your resource model is not your affordance model. -- Amundsen, 2016.


So, GET /users/{user-id}/addresses POST /users/{user-id}/addresses is valid?

It's not clear which question you are asking.

Having a resource that returns representations of a collection of addresses for a user? Sure, there's nothing wrong with doing that. You may want to think through some of the caching implications -- what happens to cached representations of /users/{user-id} when somebody posts a change to /users/{user-id}/addresses? -- and make the trade-offs appropriate to your situation.

Are those identifier spellings appropriate for a resource? Sure -- but so are any other ones you might imagine. REST doesn't care what spelling you use, so long as you are following the appropriate standard (in the case of URI: RFC 3986).