{"id":38957619,"url":"https://github.com/jakubkozera/openapi-ui","last_synced_at":"2026-01-27T13:02:42.210Z","repository":{"id":296880668,"uuid":"994835010","full_name":"jakubkozera/openapi-ui","owner":"jakubkozera","description":"A modern, feature-rich OpenAPI/Swagger documentation and testing interface with advanced functionality for API development and testing. Provides interactive API documentation, code generation, collection runner, and multiple distribution formats including ASP.NET Core integration and VS Code extension.","archived":false,"fork":false,"pushed_at":"2026-01-25T19:44:29.000Z","size":3795,"stargazers_count":36,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-01-25T23:06:17.447Z","etag":null,"topics":["api-testing","code-generation","openapi","openapi-documentation","openapi-ui","swagger-ui"],"latest_commit_sha":null,"homepage":"https://jakubkozera.github.io/openapi-ui/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jakubkozera.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"jakubkozera","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2025-06-02T14:53:00.000Z","updated_at":"2026-01-25T09:17:07.000Z","dependencies_parsed_at":"2025-06-03T04:49:18.644Z","dependency_job_id":"1e3abb32-9719-49a5-9130-52d2dae8a8c6","html_url":"https://github.com/jakubkozera/openapi-ui","commit_stats":null,"previous_names":["jakubkozera/openapi-ui"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/jakubkozera/openapi-ui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakubkozera%2Fopenapi-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakubkozera%2Fopenapi-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakubkozera%2Fopenapi-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakubkozera%2Fopenapi-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jakubkozera","download_url":"https://codeload.github.com/jakubkozera/openapi-ui/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakubkozera%2Fopenapi-ui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28813225,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T12:25:15.069Z","status":"ssl_error","status_checked_at":"2026-01-27T12:25:05.297Z","response_time":168,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-testing","code-generation","openapi","openapi-documentation","openapi-ui","swagger-ui"],"created_at":"2026-01-17T16:20:25.873Z","updated_at":"2026-01-27T13:02:42.204Z","avatar_url":"https://github.com/jakubkozera.png","language":"JavaScript","funding_links":["https://github.com/sponsors/jakubkozera"],"categories":["JavaScript"],"sub_categories":[],"readme":"# OpenAPI UI\n\nA modern, feature-rich OpenAPI/Swagger documentation and testing interface with advanced functionality for API development and testing.\n\n## 🎮 Demo\n\nWant to try OpenAPI UI before integrating it into your project? Check out our live demo:\n\n**[🚀 Try it yourself at https://jakubkozera.github.io/openapi-ui/](https://jakubkozera.github.io/openapi-ui/)**\n\nThe demo showcases all the features mentioned above with a sample API specification, so you can:\n\n- Explore the modern UI and navigation\n- Test the interactive API functionality\n- Try out the Collection Runner\n- Experience the authentication features\n- Generate code snippets and API clients\n- See the variable management in action\n\nNo installation required - just open the link and start exploring!\n\n## 🚀 Features\n\n### Core Features\n\n- 🚀 **Easy Integration** - Simple one-line setup in your ASP.NET Core application\n- 📱 **Modern UI** - Clean, responsive interface for API documentation\n- 🔍 **Easy Navigation** - Search and filter options for quick endpoint discovery\n- 📋 **Comprehensive Endpoint Documentation** - Detailed API docs with requirements, parameters, and schemas\n- ⚡ **Try It Out Section** - Interactive API testing directly from the documentation\n- 🔐 **Authentication Options** - Built-in support for various authentication schemes (Bearer Token, Basic Auth, API Key, OAuth2, OpenID Connect)\n- **Real-time Response Viewing** - Immediate feedback with formatted response data\n\n![OpenAI UI overview](readme-assets/openapi-ui-overview.png)\n\n### Advanced Features\n\n#### 🏃‍♂️ Collection Runner (Postman-like)\n\n- 🏃 **Collection Runner** - Execute multiple API requests in sequence for testing workflows\n\n![collection-runner](readme-assets/collection-runner.png)\n\n- Variable extraction and chaining between requests\n\n![variable-definition](readme-assets/variable-definition.png)\n![variable-usage](readme-assets/variable-usage.png)\n![variable-usage-request-body](readme-assets/variable-usage-request-body.png)\n\n- **Output Parameters** - Extract values from responses for reuse\n\n![output-parameters-definition](readme-assets/output-parameters-definition.png)\n![output-parameters-usage](readme-assets/output-parameters-usage.png)\n\n#### 🔧 Developer Tools\n\n- 📝 **Code Snippets Generation** - Auto-generate code examples in multiple programming languages\n- 🛠️ **API Client Generation** - Generate complete API client libraries for different platforms (C#, JavaScript/TypeScript)\n- **Monaco Editor Integration** - Advanced code editing with syntax highlighting\n- **Variables Management** - Define and manage environment variables\n\n#### 🎯 User Experience\n\n- **Favorites System** - Bookmark frequently used endpoints\n- 🔍 **Search \u0026 Filtering** - Quickly find endpoints and operations\n- 🎨 **Theme Support** - Light and dark themes\n- 📱 **Responsive Design** - Works seamlessly on desktop and mobile devices\n- 🔧 **Customizable** - Embedded CSS and JavaScript that can be themed\n\n#### 📊 Navigation \u0026 Organization\n\n- **Smart Sidebar** - Collapsible navigation with search functionality\n- **Endpoint Grouping** - Organized by tags and paths\n- **Quick Access** - Jump to specific operations instantly\n- **Breadcrumb Navigation** - Always know where you are in the API\n\n## 🛠 Distribution Formats\n\nOpenAPI UI is available in multiple formats to suit different integration needs:\n\n### Standalone Core\n\n- Pure HTML/CSS/JavaScript implementation\n- No dependencies on specific frameworks\n- Easy to embed in any web application\n- Self-contained single-file distribution available\n\n### ASP.NET Core Integration\n\n- 📦 **NuGet package**: `OpenApiUi`\n- 🚀 **Seamless integration** with ASP.NET Core applications\n- 🔧 **Middleware support** for easy setup\n- ⚙️ **Compatible** with existing Swagger/OpenAPI pipelines\n- 📦 **Self-Contained** - All assets embedded in the NuGet package\n- 🌐 **Multi-Framework Support** - Compatible with .NET 6.0, 8.0, and 9.0\n\n### Demo Mode\n\n- Standalone demo with sample API specifications\n- Perfect for testing and evaluation\n- No backend required\n\n## 🚀 Quick Start\n\n### ASP.NET Core Integration\n\n1. Install the NuGet package:\n\n```bash\ndotnet add package OpenApiUi\n```\n\nOr via Package Manager Console in Visual Studio:\n\n```powershell\nInstall-Package OpenApiUi\n```\n\n2. Add to your `Program.cs` (or `Startup.cs` for older versions):\n\n```csharp\nusing OpenApiUi;\n\nvar builder = WebApplication.CreateBuilder(args);\n\n// Add services to the container\nbuilder.Services.AddControllers();\nbuilder.Services.AddEndpointsApiExplorer();\nbuilder.Services.AddSwaggerGen();\n\nvar app = builder.Build();\n\n// Configure the HTTP request pipeline\nif (app.Environment.IsDevelopment())\n{\n    app.UseSwagger();\n    app.UseSwaggerUI();\n}\n\n// Add OpenAPI UI middleware\napp.UseOpenApiUi(); // Uses default path \"/swagger/v1/swagger.json\"\n\napp.UseHttpsRedirection();\napp.UseAuthorization();\napp.MapControllers();\n\napp.Run();\n```\n\n3. Access the OpenAPI UI\n\nNavigate to `/openapi-ui` in your browser to view the API documentation interface.\n\n### Custom OpenAPI Specification Path\n\nYou can specify a custom path to your OpenAPI specification:\n\n```csharp\napp.UseOpenApiUi(\"/api/docs/swagger.json\");\n```\n\n## Requirements\n\n- .NET 6.0, 8.0, or 9.0\n- ASP.NET Core application\n- OpenAPI/Swagger specification endpoint\n\n## Troubleshooting\n\n### OpenAPI UI not loading\n\n1. Ensure the middleware is added after `UseSwagger()` if you're using Swashbuckle\n2. Check that your OpenAPI specification path is correct and accessible\n3. Verify the middleware is registered in the request pipeline\n\n### Custom OpenAPI path not working\n\nMake sure the path you specify in `UseOpenApiUi()` matches your actual OpenAPI specification endpoint.\n\n### Static assets not loading\n\nThe static assets are served from embedded resources. If they're not loading, check the browser's developer tools for 404 errors and verify the middleware is properly configured.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## 🆘 Support\n\n- 📖 [Documentation](https://github.com/your-repo/openapi-ui/wiki)\n- 🐛 [Issue Tracker](https://github.com/your-repo/openapi-ui/issues)\n- 💬 [Discussions](https://github.com/your-repo/openapi-ui/discussions)\n\n## 🌟 Why Choose OpenAPI UI?\n\n- **Modern Architecture** - Built with modern web standards\n- **Rich Feature Set** - Goes beyond basic documentation\n- **Developer Focused** - Tools that developers actually need\n- **Easy Integration** - Multiple distribution formats\n- **Active Development** - Continuously improved and updated\n- **Performance Optimized** - Fast loading and smooth interactions\n\nTransform your API documentation from static pages into a powerful development tool with OpenAPI UI!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakubkozera%2Fopenapi-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakubkozera%2Fopenapi-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakubkozera%2Fopenapi-ui/lists"}