Interactive OpenAPI 3.0 Specification practice labs for exam preparation.
OAS Practice is a web application that helps users learn and practice writing OpenAPI 3.0 specifications. It provides:
- Pre-authored scenarios covering all aspects of OpenAPI 3.0
- Granular topic selection to focus on specific areas
- Real-time YAML validation for immediate feedback
- Semantic validation to verify solutions meet requirements
- Progress tracking stored locally in your browser
Perfect for certification exam preparation or learning OpenAPI from scratch.
- Practice Scenarios: 80+ scenarios covering paths, operations, parameters, schemas, security, and more
- Interactive Editor: Monaco-based editor with YAML syntax highlighting and validation
- Difficulty Levels: Beginner, intermediate, and advanced scenarios
- Progress Tracking: Local storage persistence with draft auto-save
- Self-Hostable: Deploy anywhere with Docker
# Clone the repository
git clone https://github.com/your-org/oas-practice.git
cd oas-practice
# Start the application
docker-compose up
# Open http://localhost:3000 in your browserSee Development Setup below.
| Document | Description |
|---|---|
| Architecture | System design, API contracts, data models |
| Scenario Authoring | How to create practice scenarios |
| Contributing | Contribution guidelines |
| Deployment | Production deployment guide |
- Python 3.11+
- Node.js 18+
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reloadcd frontend
npm install
npm run dev- Backend: Python, FastAPI, Pydantic
- Frontend: React, TypeScript, Vite, Monaco Editor, Zustand
- Styling: Tailwind CSS
- Deployment: Docker, Nginx
oas-practice/
├── backend/ # Python FastAPI backend
│ ├── app/ # Application code
│ └── scenarios/ # Practice scenario files
├── frontend/ # React TypeScript frontend
│ └── src/
│ ├── components/ # React components
│ ├── store/ # Zustand state management
│ └── services/ # API and validation services
├── docs/ # Documentation
└── docker-compose.yml # Local development
- Paths & Operations: URL structure, HTTP methods
- Parameters: Path, query, header, cookie parameters
- Request Bodies: JSON, form data, multipart
- Responses: Status codes, content types, headers
- Schemas: JSON Schema, $ref, composition
- Components: Reusable schemas, parameters, responses
- Security: API keys, OAuth2, OpenID Connect
- And more: Tags, servers, callbacks, links
We welcome contributions! See CONTRIBUTING.md for guidelines.
The most impactful contribution is adding new scenarios. See SCENARIO_AUTHORING.md.
- OpenAPI Initiative for the OpenAPI Specification
- The open source community for the excellent tools and libraries