Cisco's comprehensive design guidelines for building consistent, secure, and RESTful network APIs.
The Cisco API Design Guide is a comprehensive set of guidelines for designing RESTful APIs within Cisco's ecosystem. It provides standards for security, URL structure, HTTP usage, JSON representations, and versioning to ensure consistency and quality across network APIs. The guide addresses the need for cohesive, secure, and maintainable service-level APIs in large-scale enterprise environments.
API designers, architects, and developers building or maintaining network APIs for Cisco products and services. It's also valuable for teams adopting RESTful practices in enterprise environments seeking standardized API design.
It offers a battle-tested, enterprise-focused framework that enforces security, consistency, and RESTful principles. Developers choose it to align with Cisco's internal standards, reduce design ambiguity, and build APIs that are interoperable, secure, and maintainable across diverse product teams.
Guidelines for designing REST APIs at Cisco
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Mandates HTTPS, OAuth2 authentication, and protections against vulnerabilities like CSRF and Direct Object Reference, as explicitly required in sections 3.1 and 3.2.
Provides detailed rules for URL structure, HTTP verbs, and JSON representations to ensure adherence to Roy Fielding's REST principles, reducing design ambiguity across teams.
Defines clear JSON representation types (reference, narrow, wide) with mandatory 'url' fields and standardized formats for dates and durations, enhancing interoperability.
Outlines backward-compatible changes and uses version tokens in URLs (e.g., /v3/), with guidance on deprecation and redirection to manage API evolution effectively.
The guide is tailored for Cisco's internal products, and the README notes that latest updates require a Cisco login, limiting accessibility and applicability for external projects.
With strict mandates on everything from URL formats to error responses, it can be restrictive for teams needing flexibility or working in non-standard environments.
As a design guide only, it provides no libraries or tools, requiring teams to implement all specifications from scratch, which increases development overhead.