It there a way for non-javaer to call external rest api in every assignment of user task activity?

You’re right, you need to use Java to customise TaskListeners: dooghi Using TaskListener in remote engine model

If you use a parse listener to add some bahaviour to each and every task, as thorben poitns out in the post you linked to, you can definitely customise the invocation, based on - for instance - custom properties defined on the model for the task. In the parse listener, you have access to the model objects parsed, so you can use that context to customise the connector or listener that you’re using to invoke the remote service that needs to know about the process’ events.