What is OpenAPI & Swagger?

πŸ’‘ Concept Name

OpenAPI Specification & Swagger – OpenAPI is a standard format to describe RESTful APIs, while Swagger refers to the suite of tools that use this specification to help create, document, and test APIs.

πŸ“˜ Quick Intro

The OpenAPI Specification (OAS) provides a machine-readable way to define REST API endpoints, request/response structures, and authentication methods. Swagger tools take this spec and generate interactive documentation, editors, and client/server SDKs, making API development smoother.

🧠 Analogy / Short Story

Think of OpenAPI as the architectural blueprint for a buildingβ€”it maps out every room, door, and fixture. Swagger acts as the virtual 3D tour, allowing developers and users to explore the API’s design interactively before it's built.

πŸ”§ Technical Explanation

  • βœ… OpenAPI:
    • Written in YAML or JSON, it describes API paths, operations, request/response schemas, and security schemes.
    • Supports features like versioning, servers, and reusable components.
    • Language- and platform-neutral, compatible with various tools (OAS 3.0+).
  • ❌ Swagger Tools:
    • swagger-ui: Generates interactive, web-based API documentation from OpenAPI specs.
    • swagger-editor: Browser-based editor with live validation for OpenAPI documents.
    • swagger-codegen / openapi-generator: Generate client libraries and server stubs in multiple languages.

🎯 Purpose & Use Case

  • βœ… Create and share API contracts among teams before coding starts.
  • βœ… Automatically generate interactive documentation for easier testing and onboarding.
  • βœ… Produce SDKs for multiple programming languages to speed up client development.
  • βœ… Maintain consistency, version control, and compliance throughout API lifecycle.

πŸ’» Real Code Example

// openapi-swagger.yaml
openapi: 3.0.1
info:
  title: Sample API
  version: 1.0.0
paths:
  /users:
    get:
      summary: Retrieve a list of users
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
components:
  schemas:
    User:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string

❓ Interview Q&A

Q1: What does OAS stand for?
A: OpenAPI Specification.

Q2: Which formats does OpenAPI support?
A: YAML and JSON.

Q3: What is swagger-ui?
A: A tool to generate interactive API docs from OpenAPI specs.

Q4: How is OpenAPI versioned?
A: Using the info.version field in the spec.

Q5: Which command generates client SDKs?
A: openapi-generator generate.

Q6: Can OpenAPI describe WebSocket APIs?
A: No, it focuses on RESTful HTTP APIs.

Q7: How do you secure endpoints?
A: By defining securitySchemes under components.

Q8: What does swagger-editor do?
A: Provides an in-browser editor with validation for OpenAPI specs.

Q9: How to add examples in OpenAPI?
A: Use the examples object inside responses or requests.

Q10: When were callbacks introduced?
A: In OpenAPI version 3.0.

πŸ“ MCQs

Q1. Which keyword defines reusable schemas in OpenAPI?

  • definitions
  • components
  • schemas
  • models

Q2. What UI tool generates interactive API documentation?

  • swagger-editor
  • redoc
  • swagger-ui
  • postman

Q3. Where does OpenAPI metadata reside?

  • metadata
  • info
  • details
  • description

Q4. Which tool generates server stubs?

  • swagger-codegen
  • openapi-generator
  • nswag
  • autorest

Q5. How are path parameters specified?

  • [param]
  • {param}
  • :param
  • <param>

Q6. What HTTP methods does OpenAPI support?

  • Only GET/POST
  • All standard HTTP verbs
  • Only CRUD
  • None

Q7. Where are global security schemes defined?

  • components
  • security
  • auth
  • servers

Q8. What is the latest OpenAPI version?

  • 2.0
  • 3.0.1
  • 3.1.0
  • 4.0.0

Q9. Where do you define server URLs?

  • paths
  • servers
  • components
  • info

Q10. Which tag groups API operations?

  • groups
  • tags
  • categories
  • labels

πŸ’‘ Bonus Insight

Redoc is a popular alternative renderer that supports features like code samples, deep linking, and powerful search, ideal for large API documentation portals.

πŸ“„ PDF Download

Need a handy summary for your notes? Download this topic as a PDF!

πŸ’¬ Feedback
πŸš€ Start Learning
Share:

Tags: