Database Insertion and Deletion
The BAO is not required, but it is what we always used to do. So the standard approach is: the API uses the BAO/DAO functions to insert and select. You can find a pretty simple example here: https://github.com/CiviCooP/no.maf.oppgavexml/tree/master/CRM/Oppgavexml