Skip to content
ADP
API Design PrincipleBETA

[ADP-20] Engineering Principles

reviewing phase 1

This article needs more references and practical content.

API First is one of our core engineering principles. This document outlines API First and several related or worth-mentioning engineering principles.

Principle List

API First

API First is a development approach that prioritizes the design and development of APIs before implementing the underlying systems. Key aspects include:

  • Designing APIs before writing any code
  • Using API description formats like OpenAPI (Swagger)
  • Ensuring consistency across all APIs
  • Facilitating parallel development of front-end and back-end systems
  • Using API testing and validation

See ADP-22 for more details.

DevOps and Continuous Integration/Continuous Deployment (CI/CD)

DevOps practices and CI/CD pipelines support API First by:

  • Automating API testing and validation
  • Enabling rapid iteration and deployment of API changes
  • Facilitating consistent environments across development, testing, and production

Documentation as Code

Treating documentation as code aligns well with API First:

  • Maintaining API documentation alongside code
  • Automatically generating and updating documentation from API specifications
  • Ensuring documentation stays current with API changes

Security by Design

Integrating security into the API design process:

  • Implementing proper authentication and authorization mechanisms
  • Ensuring data privacy and protection
  • Conducting regular security audits of APIs

Versioning and Backward Compatibility

See ADP-24 for more details.

Developer Experience (DX)

See ADP-23 for more details.

Adopt Best Practices

See ADP-21 for more details.

Guidance

  • Teams SHOULD properly incorporate these principles into their development workflows, ensuring that API design and development are prioritized throughout the software development lifecycle.
  • These principles SHOULD be regularly reviewed and updated to reflect evolving best practices, technologies, and team experiences. Feedback and suggestions for improvements are encouraged from all team members.