# Chapter 3. Generating a Database-backed API
DreamFactory's capabilities are vast, however there is no more popular feature than its ability to generate a database-backed REST API. By embracing this automated approach, development teams can shave weeks if not months off the development cycle, and in doing so greatly reduce the likelihood of bugs or security issues due to mishaps such as SQL injection. This approach doesn't come at the cost of trade offs either, because DreamFactory's database-backed APIs are fully-featured REST interfaces, offering comprehensive CRUD (create, retrieve, update, delete) capabilities, endpoints for executing stored procedures, and even endpoints for managing the schema.
In this chapter you'll learn all about DreamFactory's ability to generate, secure, and deploy a database-backed API in just minutes. You'll learn by doing, following along as we:
- Generate a new database-backed REST API
- Secure API access to your API using API keys and roles
- Interact with the auto-generated Swagger documentation
- Query the API using a third-party HTTP client
- Synchronize records between two databases
We chose MySQL as the basis for examples throughout the chapter, because it is free, ubiquitously available on hosting providers and cloud environments, and can otherwise be easily installed on all operating systems. Therefore to follow along with this chapter you'll need:
- Access to a DreamFactory instance and a MySQL database.
- If your MySQL database is running somewhere other than your laptop, you'll need to make sure your firewall is configured to allow traffic between port 3306 and the location where your DreamFactory instance is running.
- A MySQL user account configured in such a way that it can connect to your MySQL server from the DreamFactory instance's IP address.
Before we begin, keep in mind MySQL is just one of DreamFactory supported 18 databases. The following table presents a complete list of what's supported:
|Databases||SQL and No SQL|
|AWS DynamoDB||IBM Informix|
|Azure Table Storage||Oracle|
|CouchDB||SAP SQL Anywhere|
|IBM Db2||SQL Server|
Best of all, thanks to DreamFactory's unified interface and API generation solution, everything you learn in this chapter applies identically to your chosen database! So if you already plan on using another database, then by all means feel free to follow along using it instead!
Looking for a more concise overview? Check out our blog post, "Create a MySQL REST API in Minutes Using DreamFactory"!
Want to create a MySQL API but don't have any test data? You can download a sample database from the MySQL website containing contrived employee-related data. Click here to learn more about and install the example database.