Launching Your Projects to New Heights with Data API Builder

Launching Your Projects to New Heights with Data API Builder
Photo by NASA / Unsplash

As .NET developers, we always look for ways to streamline our workflows, reduce repetitive tasks, and create robust, maintainable code. At the recent developer conference, Jerry Nixon introduced us to Data API Builder (DAB), a powerful tool designed to simplify and enhance how we build and interact with data APIs. Here's a summary of the session at Denver Dev Day. He explained why DAB could be a significant addition to your toolkit!

Be sure to check out future Denver Dev Day events - https://denverdevday.github.io. The next one is in October!

Introduction to Data API Builder

Jerry began by addressing a common scenario: directly interacting with databases from client applications. While this approach works, it's not ideal due to increased complexity and the risk of exposing database details. Traditionally, we would create web APIs in Visual Studio, coding controllers, and set up minimal APIs or fast APIs. However, this process can be repetitive, adding unnecessary lines of code, unit tests, and complexity to your CI/CD pipeline.

Enter Data API Builder. This open-source tool, built by Microsoft, abstracts away repetitive tasks by providing a ready-to-use data API. It's cross-platform, requires no specific operating system or framework, and operates within a container. DAB generates the necessary API endpoints by simply providing a JSON file describing your database.

Key Benefits of Data API Builder

  1. Rapid Prototyping and Production-Ready: DAB is excellent for proof-of-concept projects and production environments. It lets you quickly spin up data APIs, making it ideal for rapid development cycles.
  2. Cross-Platform Compatibility: Whether you're using SQL Server, Cosmos DB, MySQL, or PostgreSQL, DAB supports various back-end databases. It also facilitates seamless migration between different database types without client-side changes.
  3. Configuration-Based: With DAB, you configure your API through a JSON file. This approach minimizes coding and focuses on configuration, which is easier to manage and less error-prone.
  4. Robust and Secure: DAB is designed with security and robustness. It supports JWT tokens, retry policies, local caching, and more. This ensures your API is secure and resilient.
  5. Open Source and Extensible: Being open source, DAB encourages contributions from the developer community. You can extend its capabilities, ensuring it evolves with your requirements.

Practical Demonstration

Jerry demonstrated how straightforward it is to get started with DAB:

  • Installation: Install the DAB CLI tool via .NET tools: dotnet tools install microsoft.dataapibuilder --global
  • Initialization: Use the dab init command to create a base configuration file.
  • Configuration: Define your database connections, JWT settings, entities (tables), and permissions in the JSON file.
  • Running DAB: Start the service with the dab start command, which reads your environment variables, validates your configuration against the database schema, and sets up the API endpoints.

Real-World Application

Imagine a scenario where you need to create an API for a SQL Server database. Instead of writing controllers, setting up routing, and handling data access, you simply configure DAB. It generates REST and GraphQL endpoints, complete with OpenAPI documentation, Banana Cake Pop IDE, and Swagger UI for easy interaction. This drastically reduces development time and ensures consistency across your APIs.

Conclusion

For .NET developers, Data API Builder offers a powerful way to simplify API development. By abstracting the repetitive tasks and providing a robust, configuration-based solution, DAB allows you to focus on building great applications rather than boilerplate code. It's a versatile tool that works well with various databases and integrates seamlessly into your existing workflows.

As Jerry highlighted, the future of database interaction is through APIs. Adopting tools like Data API Builder prepares you for this shift and enhances your development efficiency and code quality. Now is the perfect time to start if you haven't explored DAB yet.

For more detailed information and documentation, visit:

Data API builder documentation - Data API builder
With Data API builder, database objects can be exposed via REST or GraphQL endpoints so that your data can be accessed using modern techniques on any platform, any language, and any device.

Other Resources

GitHub - JerryNixon/dab-tool-dotnet-cli
Contribute to JerryNixon/dab-tool-dotnet-cli development by creating an account on GitHub.
Home 2024 - OpenAPI Initiative
The OpenAPI Initiative provides an open source, technical community, within which industry participants may easily contribute to building a vendor-neutral, portable and an open specification for providing technical metadata for REST APIs – the “OpenAPI Specification” (OAS).
Banana Cake Pop / GraphQL IDE
Banana Cake Pop is an incredible, beautiful, and feature-rich GraphQL IDE for developers that works with any GraphQL APIs.
REST API Documentation Tool | Swagger UI
Swagger UI allows development team to visualize and interact with the API’s resources without having any of the implementation logic in place. Learn more.