OK, well we are now moving away from the original post into the realm of enrolments for students.
Why through REST protocol though, or has that been suggested by someone who doesn't know what Moodle is capable of doing on its own (sometimes clients need protecting from themselves )?
I dont know of any information system that isnt at its heart based on a database, and Moodle can read almost all of them. If they dont want Moodle to have direct access to the database then the solution we use at my institution (security reasons that I don't understand the logic of, but essentially I wasn't allowed to hook direct into our MIS database) is that we have a script which pulls out the enrolment from our MIS into a separate MySQL database, which Moodle then reads directly as its external database. No REST protocols or webservices needed, just a database script on the main MIS that runs every night and then Moodle external database enrolment system does the rest.
This may be better asked in a different thread (as its not about course creation anymore) where someone with more knowledge than me about enrolments might be able to suggest a better way to do it - or to help you develop a REST link if that really is necessary, but I wouldn't have thought so.
Moodle's permission system will allow you to set it up so the Teacher can do anything you want them to do on the course, by giving them the appropriate permissions in their roles - it may not be there by default, but you can change those permissions to enable them to do anything that the admin can do - if you want them to and are aware of the potential risks involved.
And Moodle's authentication and enrolment system (and additional plugins from the plugins database, if the core doesn't match exactly) give a lot of power over this area, without having to construct an entire new plugin to do something that Moodle already does.