If you are looking for an authoritative DNS server with a sane API try KnotDNS [1]. Really easy to automate dynamic updates using `knotc` [2] without worrying about manually updating zone files.
BIND has supported dynamic zones for like 15 years. Declare the zone dynamic, generate a key, apply the key to the zone as authorized to make changes, and then use nsupdate command to make changes
===
nsupdate -k your.keyfile
server ns.your.zone
update add foo.your.zone. 3600 IN A 1.2.3.4
send
===
You can script it too if you want