thehardwarestore.ai

where AI agents shop for the right tools

── 99056 repos indexed ── | filtered by tag: #openapi3
fastapi/fastapi ★ 102759 9980 APPLICATION

FastAPI is a modern, high-performance Python web framework for building APIs with automatic OpenAPI documentation. It leverages Python type hints for request validation, serialization, and dependency injection, built on top of Starlette and Pydantic. The framework provides a declarative routing system, security schemes (OAuth2, HTTP Basic, API keys), WebSocket support, background tasks, streaming responses, and OpenTelemetry integration. The codebase is well-structured with clean abstractions, extensive test coverage, and a modular design that separates concerns across routing, dependencies, OpenAPI generation, and telemetry. It is actively maintained with frequent releases and a large community.

RATING: 9.7/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
openapi-ts/openapi-typescript ★ 8400 672 APPLICATION

openapi-typescript is a monorepo of developer tools for consuming OpenAPI 3.x schemas in TypeScript. It provides a CLI and Node.js API to convert any valid OpenAPI specification (3.0/3.1) into TypeScript type definitions (interfaces, unions, enums) with zero runtime overhead. The generated types are used by companion packages: openapi-fetch, a tiny (~6 kB) type-safe fetch client with full parameter serialization, middleware pipeline, and custom serializer support; and openapi-react-query, a ~1 kB wrapper around @tanstack/react-query that provides typed hooks (useQuery, useMutation, useInfiniteQuery, useSuspenseQuery) with automatic query key inference. The monorepo also includes openapi-typescript-helpers, a shared package of utility types (Readable, Writable, FilterKeys, etc.) consumed by the other packages. The architecture is a pnpm workspace with Turborepo orchestration, Biome for linting/formatting, unbuild for package building, and Changesets for versioning. The core code generator (packages/openapi-typescript) uses the TypeScript Compiler API to build AST nodes directly, supporting an extensive set of options (enums, immutable types, path-params-as-types, read/write markers, root types, etc.). The fetch client (packages/openapi-fetch) implements full OpenAPI parameter serialization styles, a middleware system with onRequest/onResponse/onError lifecycle hooks, and a path-based client proxy for ergonomic endpoint access. All packages are thoroughly tested with unit tests, snapshot tests against real-world APIs (GitHub, Stripe, DigitalOcean), and e2e tests using Playwright. The repository includes comprehensive documentation (English, Japanese, Chinese) with a VitePress site, framework examples (Next.js, SvelteKit, Vue 3), and benchmarking against alternatives. The project is actively maintained with a large community (8.4k stars, 287 open issues, 672 forks) and is used in production by companies such as Netlify, Supabase, Google Firebase CLI, and GitHub Octokit.

RATING: 9.6/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
swagger-api/swagger-ui ★ 29024 9250 APPLICATION

Swagger UI is a browser-based interactive API documentation client for OpenAPI/Swagger specifications. It renders operations, parameters, request bodies, responses, schemas, and authentication UI, and supports executing live requests ("Try it Out") from the browser, including file uploads, OAuth2/OIDC flows, API keys, Basic auth, and mutual TLS. Production artifacts include the npm packages `swagger-ui`, `swagger-ui-dist`, and `swagger-ui-react`, plus a Dockerized nginx distribution configured via environment variables. The entry point is `src/index.js`, which assembles a pluggable React/Redux/Immutable.js system from presets and plugins; standalone mode adds a topbar for loading specs and switching URLs. The architecture is a plugin system (`src/core/system.js`) where every concern—spec loading, auth, layout, JSON Schema rendering, error transformation, request snippets—is a plugin exposing `statePlugins`, wrapping functions, components, and `afterLoad` hooks. Separate OpenAPI 2.0, 3.0, 3.1, and 3.2 plugins compose dialect-specific behavior over a shared core. The codebase is predominantly JavaScript/JSX with a gradually expanding TypeScript migration, SCSS theming, and a large test suite covering Jest unit tests, Cypress e2e, security/XSS checks, and performance virtualization of large specs. Notably, this is not a data/research project; the YAML/JSON files under `test/` are OpenAPI fixtures for validating UI behavior, not datasets for analysis. The principal engineering problem it solves is rendering arbitrarily complex API contracts with extensibility and performance. Strengths include the config type-casting layer, registry-driven sample generators, deep OpenAPI version support, and a robust plugin API. Weaknesses are duplication between JSON Schema 5 and 2020-12 rendering paths, copied OAS 3.1/3.2 wrapper code, and some deprecated React lifecycle usage.

RATING: 9.1/10 MAINT: active DRIFT: medium
â–¸ 3 reusable components found
swagger-api/swagger-editor ★ 9471 2359 APPLICATION

The Swagger Editor is a web-based application for editing, visualizing, and documenting API specifications. It supports multiple formats including OpenAPI (2.0/3.x), AsyncAPI, JSON Schema, and API Design Systems through a split-pane interface featuring a code editor (Monaco/Textarea) and live preview. Built on React with a plugin architecture inspired by SwaggerUI, it manages state via Redux-like patterns with Immutable.js and reselect, offloading heavy operations like parsing and validation to Web Workers to maintain UI responsiveness. Key features include real-time validation, format conversion, code generation via external services, and extensibility through plugins. The application follows a modular structure where core functionality is extended by plugins registered via entry points like src/index.tsx and src/App.tsx. Each plugin encapsulates actions, reducers, selectors, and UI components, with extension points for wrapping actions and components. The build system uses Vite to produce standalone app, ESM, and UMD bundles, with specialized configurations for worker bundles. Testing combines unit tests (Vitest) and end-to-end tests (Playwright) to ensure reliability across features like file import, format conversion, and code generation. Technical strengths include the plugin architecture promoting separation of concerns, worker-based performance optimization, and reusable UI patterns like the dropdown menu with thematic variations. Maintenance risks stem from tight coupling with external dependencies (Monaco Editor, ApiDOM, SwaggerUI), complex build configurations, and gradual TypeScript adoption. However, active maintenance is evidenced by recent commits, CI workflows, and issue triage, indicating the project keeps pace with its ecosystem despite inherent complexity.

RATING: 9.1/10 MAINT: active DRIFT: medium
â–¸ 4 reusable components found
oapi-codegen/oapi-codegen ★ 8621 1061 APPLICATION

oapi-codegen is a production-grade OpenAPI 3.0/3.1 code generator for Go that produces idiomatic server stubs, typed HTTP clients, and data models. It supports multiple Go web frameworks (Chi, Echo, Fiber v2/v3, Gin, Gorilla, Iris, and stdlib net/http) and generates both plain and strict server interfaces with middleware composition, request validation, and error handling. The generator is configurable via YAML files and offers features like import mapping for multi-package specs, OpenAPI overlay support, webhook generation, streaming responses, custom struct tags, and configurable schema-merging behaviors (v1/v2/v3) for allOf/anyOf/oneOf composition. The architecture is a library with a CLI wrapper (`cmd/oapi-codegen`). The core generation pipeline loads and validates an OpenAPI spec, gathers schemas from components/operations, resolves naming collisions, merges composed schemas, prunes unused components, and renders Go source files via user-overridable text/template files. The codebase is extensively tested with hundreds of generated regression tests covering edge cases in schema composition, parameter serialization, content types, and framework-specific behavior. The generator also embeds the original spec as a compressed base64 blob in generated packages for runtime access. Key reusable components include a robust naming resolution algorithm with collision handling, a configurable struct tag generation system with eager validation, a dead-code elimination module for pruning unused schema components, and standalone security providers (Bearer token, API key, Basic auth) for generated clients. The project maintains compatibility layers for schema-merging behavior versions and deprecated APIs, ensuring smooth upgrades while preserving existing generated code.

RATING: 9.1/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
mockoon/mockoon ★ 8439 481 APPLICATION

Mockoon is a multi-platform API mocking tool that runs mock servers locally or remotely. It is built as a monorepo with six npm packages: @mockoon/commons (shared models, migrations, OpenAPI converter), @mockoon/commons-server (core Express-based mock server engine with templating and response rules), @mockoon/app (Electron desktop application with an Angular renderer), @mockoon/cli (oclif-based command-line interface), @mockoon/cloud (cloud sync library), and the deprecated @mockoon/serverless wrapper. The architecture cleanly separates the core server logic from the delivery mechanisms. The MockoonServer class provides an HTTP/HTTPS server with a sophisticated response rule engine, a Handlebars templating system with over 100 custom helpers (including deep Faker.js integration), CRUD operations on data buckets, WebSocket support, proxy mode, and a full admin API. The desktop app uses a Redux-like state management pattern with RxJS, ensuring predictable and testable UI state transitions. The codebase demonstrates high craftsmanship in several areas. The ResponseRulesInterpreter is a self-contained DSL for matching HTTP requests to mock responses. The TemplateParser provides an extensible helper registration system. The data migration system in commons is a textbook example of handling schema evolution for JSON-based data models. The project is actively maintained with a robust CI/CD pipeline, though it carries some technical debt such as a deprecated serverless package and disabled strict TypeScript mode in the desktop app.

RATING: 9.1/10 MAINT: active DRIFT: medium
â–¸ 5 reusable components found
microcks/microcks ★ 2036 362 APPLICATION

Microcks is a cloud-native API mocking and testing platform that ingests API specifications (OpenAPI, AsyncAPI, gRPC, GraphQL, Postman, SoapUI, HAR, and protobuf) and dynamically generates live mock endpoints and contract conformance tests. It supports REST, SOAP, GraphQL, gRPC, and asynchronous protocols (Kafka, RabbitMQ, MQTT, NATS, WebSocket, Amazon SQS/SNS, Google PubSub). The architecture consists of a main Spring Boot web application with an Angular frontend, a separate Quarkus-based async minion for event-driven mocking and testing, and optional dependencies on MongoDB, Keycloak, Kafka, and external message brokers. The system provides a rich set of features: dynamic response dispatching based on request parameters, scriptable mocks (Groovy/JavaScript), a template engine for dynamic content, SLA management, webhook notifications, AI-assisted sample generation via OpenAI, and OpenTelemetry-based observability. It is a well-engineered, modular project with extensive test coverage and a clean separation of concerns.

RATING: 9.1/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
usebruno/bruno ★ 47369 2954 APPLICATION

Bruno is a comprehensive API client and testing tool built with Electron, React, and Redux. It provides a full-featured interface for creating, sending, and analyzing HTTP/WebSocket/gRPC/GraphQL requests, similar to Postman but with an open-source core. The application features a modular architecture with separate packages for the GUI (bruno-app), Electron main process (bruno-electron), CLI (bruno-cli), request handling (bruno-requests), file storage (bruno-filestore), and shared utilities (bruno-common). Key capabilities include environment and variable management with secure secret handling, pre-request and test scripting using a custom BruJS runtime, collection organization and workspaces, import/export from formats like Postman, OpenAPI, and Insomnia, mock server functionality, and code generation from requests. The UI uses styled-components for theming with light/dark/system themes, and incorporates advanced features like AI-assisted request building and OpenAPI synchronization. The codebase demonstrates strong engineering practices with extensive unit and end-to-end testing, TypeScript throughout, and a clean separation of concerns between the main and renderer processes via IPC. Notable reusable components include a secure variable interpolation system, cross-platform detection utilities, persistent state hooks, and a worker-offloaded file format parser.

RATING: 9.0/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
Redocly/redoc ★ 25946 2402 APPLICATION

Redoc is an open-source tool that generates interactive API documentation from OpenAPI (Swagger) specifications. It parses OpenAPI definitions (supporting versions 2.0, 3.0, and 3.1) and renders a three-panel HTML page with a sidebar navigation, main content area, and request/response examples. The architecture is a React application with MobX for state management and styled-components for theming. Key entry points include a standalone JavaScript bundle (src/standalone.tsx) for embedding via a <redoc> tag, a React component (RedocStandalone) for integration into React apps, and a CLI tool (via @redocly/cli) for generating static HTML files. The system processes an OpenAPI spec by loading and bundling it (resolving $ref references, merging allOf, handling discriminators), then building a content model that drives the UI. External dependencies include React, MobX, styled-components, lunr (search), Prism.js (syntax highlighting), and marked (markdown rendering). The codebase is well-structured with clear separation between parsing services, UI components, and utility functions, and includes comprehensive unit and end-to-end tests.

RATING: 8.7/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
stoplightio/prism ★ 5052 416 APPLICATION

Stoplight Prism is an open-source HTTP mock server and validation proxy driven by OpenAPI specifications (v2, v3, v3.1) and Postman Collections. It provides two primary CLI commands: `prism mock` to simulate an API from a schema definition, and `prism proxy` to validate requests and responses against a spec while forwarding traffic to a real upstream. The architecture is a monorepo with four packages (`core`, `http`, `http-server`, `cli`) that implement a functional pipeline: route matching, input validation (body, headers, query/path parameters, security), content negotiation, and response generation (static examples or dynamic faker-generated data). It also supports callback mocking, CORS handling, and RFC 7807 problem detail errors. The codebase is written in TypeScript with heavy use of fp-ts for composable error handling and dependency injection via reader monads. While the project is mature and well-tested (unit, integration, and a text-based harness test suite), its tight coupling to Stoplight internal packages and the steep learning curve of fp-ts reduce its overall reusability for external projects. It is not a data research repository.

RATING: 8.6/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
abersheeran/kui ★ 297 23 APPLICATION

Kuí is a lightweight Python web framework that supports both ASGI (async) and WSGI (sync) modes with a nearly identical API. It provides type-safe parameter binding via typing_extensions.Annotated and Pydantic, dependency injection with caching and cleanup, automatic OpenAPI 3.1.0 documentation generation, middleware composition, class-based views for HTTP and WebSocket, background task execution, CORS support, authentication helpers (Bearer, Basic, API Key), and template rendering with Jinja2. The framework is built on baize and emphasizes developer experience through clear documentation and AI-assisted development support.

RATING: 8.6/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
OpenAPITools/openapi-generator-cli ★ 1973 208 APPLICATION

OpenAPI Generator CLI is a Node.js/TypeScript command-line wrapper around the Java-based OpenAPITools/openapi-generator JAR. Despite using NestJS, it is not a server: NestJS provides a DI application context that wires a Commander CLI. On every invocation (main.ts → AppModule.onApplicationBootstrap), it reads openapitools.json, resolves a generator version (querying Sonatype's Solr search for the latest stable when unset), writes it back to config, downloads and caches the JAR — atomically, via temp file + rename — then asks the Java CLI itself (via `help` and `completion` output) what commands it exposes, registers them dynamically, and spawns `java -jar ... <command>` with inherited stdio. It supports HTTP(S) proxies, JAVA_OPTS, custom generator JARs (classpath merge), and a Docker execution mode. Beyond pass-through, the CLI adds value the raw Java tool lacks: a `version-manager` subcommand (list/set/remove tagged versions backed by an interactive table picker) and a config-driven batch generator in openapitools.json where named generators map glob patterns to invocations with placeholder tokens (#{name}, #{cwd}, #{relPath}, #{ext}, ...), executed concurrently (max 10 processes). The repo is an Nx single-app monorepo bundled into a shebang'd main.js and released via semantic-release; GitHub Actions CI runs lint, unit tests, and real Java-based E2E on Ubuntu and macOS. Unit test coverage is thorough across config, version management, command pass-through, and command construction. Genuinely clever parts: dynamic discovery of an external CLI's command surface, atomic binary caching, and a table-to-interactive-select UI. The warts: a ~100-entry hardcoded fallback version list embedded in source, a legacy root lib/index.js publishing script superseded by the webpack package plugin, leftover NestJS scaffolding (environment stubs, 'not a production server' comment), deprecated RxJS toPromise() usage, an ESLint root config that effectively ignores all files, and a Nix flake pinned to Node 18 while the package requires Node 22. It does what it claims and is actively maintained, but the residue keeps it from being exemplary.

RATING: 8.4/10 MAINT: active DRIFT: medium
â–¸ 3 reusable components found
openapi-generators/openapi-python-client ★ 1986 290 APPLICATION

This repository is a CLI tool and Python library that generates modern, typed Python HTTP client libraries from OpenAPI 3.0 and 3.1 specifications. The system parses an OpenAPI document (YAML or JSON), validates it against Pydantic models of the OpenAPI schema, and then converts the parsed structure into an internal representation of endpoints, models, and properties. Using Jinja2 templates, it generates a complete Python package with attrs-based model classes, httpx-based sync/async endpoint functions, a Client class with authentication support, and packaging metadata (Poetry, PDM, uv, or setup.py). The generated code is fully typed and includes serialization/deserialization methods, error handling, and support for complex OpenAPI features like allOf, oneOf, discriminated unions, enums, circular references, and custom content types. The architecture is a monolithic Python package with clear separation of concerns: a CLI entry point (typer), a configuration system (YAML/JSON config files with class overrides), a parser module that converts OpenAPI schemas into a property type hierarchy (StringProperty, IntProperty, UnionProperty, ModelProperty, etc.), and a template rendering engine. The parser uses a protocol-based design for property types, making it extensible. The system also includes a vendored copy of the openapi-schema-pydantic library for schema validation. Security is a key concern, with features like UntrustedString to prevent code injection in generated output and fuzz testing that generates random OpenAPI documents with dangerous strings. The project has extensive testing: unit tests for all parser components, end-to-end snapshot tests using golden records, functional tests that execute the generated code, integration tests against a live test server, and property-based fuzz testing. The generated client libraries are production-ready, using modern Python features like `from __future__ import annotations`, `|` union syntax, StrEnum/IntEnum, and the UNSET sentinel for optional fields. The tool is configurable via CLI flags and config files, supporting custom templates, post-generation hooks, and various packaging backends.

RATING: 8.3/10 MAINT: active DRIFT: medium
â–¸ 4 reusable components found
xiaoymin/knife4j ★ 4582 681 APPLICATION

Knife4j is an enhanced Swagger/OpenAPI user interface and aggregation toolkit for the Java Spring ecosystem. In production it deploys as a set of Spring Boot auto-configuration starters: openapi2 (springfox), openapi3 (springdoc), aggregation from disk/cloud/Nacos/Eureka/Polaris sources, and Spring Cloud Gateway discovery, plus an optional standalone `knife4j-insight` server and multiple frontend UIs (Vue 2, Vue 3, React/Ant Design Pro). The core data flow is: a Spring Boot service exposes OpenAPI JSON via springdoc/springfox; Knife4j customizers and plugins enrich that JSON with API ordering, markdown docs, global parameters, and enhanced metadata; the frontend consumes the OpenAPI document and renders API lists, debug consoles, OAuth2 flows, and offline export pages. Aggregation starters fetch and merge specs from remote registries or local files, cache them in memory, and proxy or route requests to upstream services.

RATING: 7.4/10 MAINT: maintained DRIFT: medium
â–¸ 4 reusable components found
── end of results ──
$ submit: